九 作用域与闭包

Posted qfshini

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了九 作用域与闭包相关的知识,希望对你有一定的参考价值。

1. 什么是作用域?
    | 作用域:就是变量使用的范围,也可以说是变量的使用环境
        | --> 作用域内的变量只能往上找,无法往下找
        | --> 函数被执行后,其函数内部的变量会从内存中删除,函数的每次调用都会创建一个新的作用域
        | 注意:全局作用域只有一个

    | let/const可以将变量声明在块作用域内
        | --> 解决的var关键字所创建变量时,存在的作用域链全局污染问题

2. 什么是闭包?
    | 通俗的说,就是能在其作用域外的环境中调用这个子元素,也可以说是延伸了作用域范围
    | 如果没有闭包,那么在处理事件,异步请求时会变得很困难
        | JS中所有函数都是闭包

    | 闭包的问题:
        | 内存泄漏:闭包特性中上级作用域会为函数保存数据,从而照成内存泄漏问题
        | this指向:闭包环境下,this指向调用函数的对象本身,如果是在全局环境下调用的,this会指向Windows对象。

以上是关于九 作用域与闭包的主要内容,如果未能解决你的问题,请参考以下文章

js面试题-----作用域与闭包

YDKJS:作用域与闭包

JS基础 作用域与闭包

作用域与闭包

javascript理解之变量作用域与闭包

javascript理解之变量作用域与闭包