用var申明一個變量:code
var a = 1; console.log(a) // 1
console.log(a) // undefined var a = 1;
js的申明過程:對象
var a; // undefined,只申明,不賦值。會有個默認值undefined a = 1 // 1
例子:作用域
var a = 1; var a; console.log(a) // 1, 對重複定義且未賦值的變量,不會覆蓋以前的值
var a = 1; var a = 2; console.log(a) // 2, 重複定義有賦值,覆蓋以前的值
注:沒有修飾符的變量,爲全局變量,如:a = 3
,這裏a爲全局變量console
let沒有與解析,不能先用再申明變量
console.log(a); // 報錯:a is not defined let a = 2;
同一個做用域下不能重複申明,具備塊及做用域ant
let a = 1; let a = 3; console.log(a); // 報錯:Identifier 'a' has already been declared
let a = 1; { let a = 2; console.log(a) // 2(不在同一個做用域) }
同let,另外const申明後不可修改,對象除外co
const a = 1; a = 2; console.log(a) // 報錯:Assignment to constant variable
const a = { name: 'lyh', age: 18 } a.name = 'lyh2' console.log(a) // {name: 'lyh2', age: 18}
const a = [1,2] a[1] = 5 console.log(a)