javascript的变量类型:var、let、const
不同点:可变性,与作用域的关系。
可变性:const定义的变量都不可变,而var和let可以任意更改。
const
只能在声明时被初始化一次,之后不允许将全新的值赋值给const变量。但可以修改const变量已经存在的值。
词法作用域:
var是在距离最近的函数或全局词法环境中定义变量(忽略块级作用域,例如for循环),const和let至今在最近的词法环境中定义变量(可以是块级作用域、循环内、函数内、全局环境内)。
1 const GLOBAL_NINJA="Yoshi"; 2 function reportActivity(){ 3 const functionActivity="jumping"; 4 for(let i=0;i<3;i++){ 5 let forMessage=GLOBAL_NINJA+""+functionActivity; 6 console.log(forMessage); 7 console.log(i); 8 } 9 console.log(i); //不能访问 10 console.log(forMessage); //不能访问 11 } 12 reportActivity(); 13 console.log(functionActivity); //不能访问 14 console.log(i); //不能访问 15 console.log(forMessage);//不能访问