随笔分类 - JavaScript
摘要:首先思考这样一个问题:如何从函数外部读取到函数内部的局部变量? 正常情况下,这是办不到的!只有通过变通的方法才能实现。 function f1(){ var a=1; function f2(){ console.log(a); } } 在上面的代码中,f1内部的所有局部变量,对f2都是可见的。但是
阅读全文
摘要:柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。 就是实现一个add方法,使计算结果能够满足如下预期: add(1)(2)(3) = 6;add(1, 2, 3)(4) =
阅读全文
摘要:function deepCopy(originData){ const newData = originData.constructor Array ? [] : {}; // 判断复制的目标是数组还是对象 for(let key in originData){ // 遍历目标 if(origin
阅读全文
摘要:匿名函数,定时器,自执行函数中this指向window 普通函数直接调用this指向window 事件函数中this指向触发事件的元素 对象中方法中this谁调用的方法this指向谁 构造函数中this指向这个实例 call,apply,bind方法中this指向第一个参数值 严格模式下全局作用域中
阅读全文
摘要:arguments对象只是与数组类似,并不是一个真正意义上的数组,可以把它叫做伪数组。 ECMAScript函数的参数并不介意你传进来多少个参数,以及参数的数据类型;通俗的说,即使你在定义函数时,只设置了两个形参,那么在调用这个函数时,你给他传递一个、二个,或者是四个、五个他都能接收 之所以会这样是
阅读全文
摘要:call,apply,bind为改变this指向的方法 共同点: 第一个参数都为改变this的指针,若第一个参数为null或者undifined,则this指向默认window 区别: call:第二个参数开始都是实参,使用该方法自动执行函数 apply:第二个参数是一个数组格式的参数列表,使用该方
阅读全文
摘要:1.防抖(debounce) 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。 当你频繁触发后,n秒内只执行一次。 function test() { console.log('防抖') } window.addEve
阅读全文
摘要:1.typeof 目前只能返回8种数据类型string,number,boolean,symbol,bigint,unfined,object,function typeof(null) 结果为object symbol: ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的
阅读全文
摘要:1.区别: ==只比较数值,在比较的过程中数据可进行数据类型转换 比较值和数据类型,在比较的过程中数据不可进行数据类型转换 2.null和undifined区别 null表示无的对象,此处没有值,null用来占位的,转换Number类型为0,typeof(null)为object undifined
阅读全文
摘要:1.while循环 while后面跟循环条件和执行语句,只要满足条件,就会一直执行里面的执行 var i = 0 while(i<10){ console.log(i) i++ } 2.do...while循环 与while相似,但是他会先执行一次,再做判断条件 var i=0 do{ consol
阅读全文