js面试总结

147 阅读1分钟

闭包

  • 闭包概念

    本质上:闭包是内部函数与外部函数联系的桥梁

    闭包是指有权访问另一个 函数作用域中的变量的函数。

  • 闭包的用途

    作用: 可以读取函数内部的变量, 让这些变量的值始终保持在内存中。

    1,匿名自执行函数

    <script type="text/javascript">
    (function (a) {
        console.log(a)
    })(3)     // 3
	</script>
    为什么要使用匿名函数自执行函数,好处是什么
 
    定义变量是需要加上var 否则会默认添加到全局对象的属性上,或者别的函数可能误用这些变量;或者造成全局对象过于庞大,影响	访问速度(因为变量的取值是需要从原型链上遍历的), 实际中有的函数只调用一次使用自执行函数也是很好的

    我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,
    因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。

2,函数作为返回值 有缓存

3 实现封装

参考链接

  • 闭包的缺陷:

    闭包会导致内存占用过高,因为变量都没有释放内存
  • 变量函数声明提升

变量函数声明提升

常见内存泄漏

  • 垃圾回收

引用计数

let const 区别

“暂时性死区”也意味着typeof不再是一个百分之百安全的操作。