🥿

块级作用域

💡
Notion Tip: Use this page to describe your approach to interviewing product candidates.
 

作用域(scope)是什么

作用域是程序中定义变量的区域 (决定着变量的生命周期)
💡
作用域控制者变量和函数的可见性生命周期

JS 中有三种作用域
全局作用域
全局作用域中的对象在代码中的任何地方都能被访问, 其生命周期伴随着页面的生命周期
函数作用域
  1. 函数作用域就是在函数内部定义的变量或函数, 并且定义的变量或者函数只能在函数内部被访问
  1. 函数执行结束之后, 函数内部定义的变量会被销毁
块作用域 (ES6 新增)
  • 块级作用域就是使用一对大括号包裹的一段代码, 比如函数、判断语句、循环语句、甚至是单独的 {}
  • 代码块内部定义的变量在代码块外部访问不到
  • 该代码块中的代码执行完成之后, 代码块中定义的变量就被销毁
 

为什么要新增快级作用域

  1. JS 语言设置之初按照最简单的方式设计
  1. 解决变量提升带来的问题