var 与 let
1.let 声明的变量只在 let 命令所在的代码块内有效 (即局部变量)拥有块级作用域的特性(IE11以下是不兼容let关键字)
2.const 声明一个只读的常量,一旦声明,常量的值就不能改变
3.如果var在函数中定义那么,该声明是局部,如果在外部定义,该声明就是全局。使用 var 关键字声明的变量不具备块级作用域的特性
4.在sc中声明全局变量,只针对javascript,而在html中声明全局变量,则只针对window,使用 var 关键字声明的全局作用域变量属于 window 对象
5.在同块级作用域当中let的重新声明并不能改变变量,而var关键词可以在任意地方改变声明的变量,注:不能使用let去声明var变量,也不能使用var去声明let的变量
6.其中var可以先调用再声明变量,而let是不予许先调用再声明
const关键字(IE10以下不支持)
1.const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改
2.const与let较为相似,1.二者都是块级作用域 2.都不能和它所有作用域的其他变量或函数拥有相同的名称
3.且const必须先初始化,之后也不能依靠再赋值进行更改(在同一个块中)
const 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的:
4.正确写法 const PI = 3.14; 错误写法 const PI; PI = 3.14;
5.const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值。使用 const 定义的对象或者数组,其实是可变的