var:最常使用的变量定义方法,可为全局变量或局部变量,如果使用不当会照成变量污染 (ES5规范)。
var text; if(1){ var num = 10; } console.log(num); //能正常输出 10 console.log(text); //输出undefined
let:块级变量,let定义的变量只能在定义该变量的{ }范围内使用(ES6规范)。
let text; if(1){ let num = 10; } console.log(num); //导致报错,num is not defined console.log(text); //输出undefined
const:定义后必须初始化赋值,且赋值后无法再被重新赋值。
(但部分情况下所指向的内容可以被改变,例如定义的值为数组与对象,并通过某些函数或方法进行更改)
const num; //导致报错,Missing initializer in const declaration
const text = '翻滚的胖子'; console.log(text); //正常输出 翻滚的胖子 text = '翻滚的瘦子'; //导致报错,ssignment to constant variable.
所指向内容被改变的例子:
const name = {a:'翻滚的胖子', b:'瘦子'}; const title = {b:'胖子', c:'翻滚'}; Object.assign(name, title); console.log(name); //输出,{a: "翻滚的胖子", b: "胖子", c: "翻滚"} name['a'] = '666'; //导致报错,Identifier 'name' has already been declared
三种不同的变量定义方式,可根据不同的使用场景进行使用。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com