1.闭包
1 .概念:可以是外部变量访问内部变量,函数套函数。
闭包就是能够读取其他函数内部变量的函数
2.用途:可以在写组件和面向对象的时候用到等
3. 优点:可以定义多个变量,安全性较高,
4.缺点:定义多变量,会导致内存较大,容易泄露,不容易清除,可能会影响浏览器的性能问题等
5.注意点:
(1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
(2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
2.普通函数和箭头函数区别:
箭头函数没有自己的this,它的this是其父级函数的this普通函数是有自己的this,他的this是在程序运行时确定的
3.call,apply,bind的理解
1.相同点:call,apply,bind都可以改变this指向
2..区别:call和apply的传参形式不同,
函数名.call(要改变的对象,参数1,参数2,......) 函数名.apply(要改变的对象,[参数1,参数2,......])bind返回函数本身,但this已经改变了 函数.bind(要改变的对象)(参数1,参数2,......)或函数.bind(要改变的对象,参数1,参数2,......)()
4、js的基本数据类型
Number、String、Boolean、Null、Undefined
symbol:是ES6新增加的基本数据类型
还有复杂数据类型:Object(Array、Json等)
网友评论