JavaScript 作用域的概念:
作用域 :
一段程序代码中所用到的名字(例如变量名)并不总是有效的,而限定这个名字的可用
性代码范围就是这个名字的作用域。
作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。
ES6 之前作用域有两种 全局作用域 和 局部作用域 ( 函数作用域 ) 。
全局作用域:
作用于所有代码执行的环境(整个 script 标签的内部)或者一个独立的 js 文件中。
局部作用域:
作用于函数内部的代码环境,就是局部作用域。因为跟函数有关系,所以也被称为
函数作用域 。
块级作用域由 {} 包括
ES6 之前 JS 是没有块级作用域这一概念的,在 if 语句中,使用 var 声明的变量在外部依旧可
以使用,如下:
if(true){ var num = 123; console.log(num); // 123 } console.log(num); // 123
在 ES6 中新增块级作用域这一概念,使用 let 声明的变量在外部将不可使用。
if(true){ let num = 10; console.log(num); // 10 } console.log(num); // 报错