2020
10-10
10-10
JavaScript 几种循环方式以及模块化的总结
小小最近学习到了js的几种循环方式,对这几种循环方式进行总结。以及对模块化的相关知识点进行总结,循环方式循环方式分为好几种循环方式,分别是for循环,forEach循环,map循环,for..in循环,for…of循环,jquery的循环。小小将会依次对这几种循环方式进行介绍。一般数组遍历循环这里使用常用的数组遍历方式。一般来说,常用的数组遍历如下for(varindex=0;index<myArray.length;index++){console.log(myArray[index]);...
继续阅读 >
首先看一段代码:打印顺序是什么?正确答案:scriptstart,scriptend,promise1,promise2,setTimeout其中涉及到事件循环(eventloop),宏任务(macrotask),微任务(microtask)一、事件循环EventLoop程序中设置两个线程:一个负责程序本身的运行,称为"主线程";另一个负责主线程与其他进程(主要是各种I/O操作)的通信,被称为"EventLoop线程"(可以译为"消息线程")。所有任务可以分成两种,一种是同步任务(synchronou...
冒泡排序冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段,也是最需要接触理解的算法,所以我们放在第一个来学习。算法介绍:比较相邻的两个元素,如果前一个比后一个大,则交换位置。第一轮把最大的元素放到了最后面。由于每次排序最后一个都是最大的,所以之后按照步骤1排序最后一个元素不用比较。冒泡算法改进:设置一个标志,如果这一趟发生了交换,则为true。否则为false。如果这一趟没有发生交换,则说...
许多算法需要交换2个变量。在编码面试中,可能会问您“如何在没有临时变量的情况下交换2个变量?”。我很高兴知道执行变量交换的多种方法。在本文中,您将了解大约4种交换方式(2种使用额外的内存,而2种不使用额外的内存)。1.解构赋值解构赋值语法(ES2015的功能)使您可以将数组的项提取到变量中。例如,以下代码对数组进行解构:leta;letb;[a,b]=[1,2,3];a;//=>1b;//=>2[a,b]=[1,2,3]是对[1,2,3]数组进行解...
一、作用及应用场景call和apply是Function的方法,他的第一个参数是this,第二个是Function的参数。call和apply都是为了改变某个函数运行时的context即上下文而存在的,换句话说,就是为了改变函数体内部this的指向。因为JavaScript的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。二者的作用完全一样,只是接受参数的方式不太一样。call需要把参数按顺序传递进去,而apply则是把...
代码如下<script>/*所有探测器都有探测的方法和分析的方法,分析当前的浏览器环境,不管是浏览器还是nodejs*//*container容器探测器*//*link链接探测器*//*外层用一个立即执行的匿名函数包裹住,防止一些函数声明或者变量泄露到外面*/!function(global){functionDetectorBase(configs){//不让外部通过直接调用方式调用,必须使用new,不使用new就会报错/*使用new的话,this就是最后要返回的对象,thisinstanceofDetectorB...
var有三种声明的情形:var声明的全局变量var在函数范围内声明的局部变量eval中声明的全局变量。首先,1、2种情形var声明的变量是无法删除的。尽管var声明的全局变量是属于window对象的属性(在浏览器中),但依然是无法删除的,因为这种属性的configurable=false,因此不能delete掉。局部变量就更不用说了,连var变量依附的对象都不知道在哪里,肯定无法删除。而eval('vara=1')看似和直接var是一样的效果(当然是在全局作用...