变量作用域

在其他语言中,任何一对花括号都是一个作用域,JS没有,JS只有函数作用域。

JS全局变量——在script和函数外定义的变量;未用Var声明的变量;

JS局部变量——在函数内定义的变量;

作用域链:单向,内部作用域能访问到外部作用域的变量,反之不行;

Var存在的问题:

1、存在变量提升;

2、不能定义常量,即变量可被多次赋值,后赋值的会覆盖先赋值的;

3、可以重复声明变量;

4、不存在块级作用域,会带来全局污染问题;

ES6中,新增let和const以解决上面这些问题;

let特点:

1、不存在变量提升;

2、存在块级作用域,防止全局污染;

const特点:

1、只能定义一次;

原文地址:https://www.cnblogs.com/wenzizaigaoge/p/10512812.html