二级网站有什么好处,建设工程中标查询网站,百度关键词seo公司,wordpress设置先登录再进入全局作用域和函数作用域
全局作用域
最外层函数和最外层函数外面定义的变量拥有全局作用域 所有未定义直接赋值的变量自动声明为全局作用域 所有 window 对象的属性拥有全局作用域 全局作用域有很大的弊端#xff0c;过多的全局作用域变量会污染全局命名空 间#xff0c;容…全局作用域和函数作用域
全局作用域
最外层函数和最外层函数外面定义的变量拥有全局作用域 所有未定义直接赋值的变量自动声明为全局作用域 所有 window 对象的属性拥有全局作用域 全局作用域有很大的弊端过多的全局作用域变量会污染全局命名空 间容易引起命名冲突。
函数作用域
函数作用域声明在函数内部的变零一般只有固定的代码片段可以访 问到 作用域是分层的内层作用域可以访问外层作用域反之不行
块级作用域
使用 ES6 中新增的 let 和 const 指令可以声明块级作用域块级作用 域可以在函数中创建也可以在一个代码块中的创建(由{ }包裹的代 码片段) let 和 const 声明的变量不会有变量提升也不可以重复声明 在循环中比较适合绑定块级作用域这样就可以把声明的计数器变量 限制在循环内部。
作用域链:
在当前作用域中查找所需变量但是该作用域没有这个变量那这个 变量就是自由变量。如果在自己作用域找不到该变量就去父级作用域 查找依次向上级作用域查找直到访问到 window 对象就被终止 这一层层的关系就是作用域链。
作用域链的作用是保证对执行环境有权访问的所有变量和函数的有 序访问通过作用域链可以访问到外层环境的变量和函数。
作用域链的本质上是一个指向变量对象的指针列表。变量对象是一个 包含了执行环境中所有变量和函数的对象。作用域链的前端始终都是 当前执行上下文的变量对象。全局执行上下文的变量对象(也就是全 局对象)始终是作用域链的最后一个对象。
当查找一个变量时如果当前执行环境中没有找到可以沿着作用域 链向后查找。