1.var宣告的變數會掛載到window物件上,let,const 宣告的變數不會
var a = 100;
console.log(a,window.a); // 100 100
let b = 10;
console.log(b,window.b); // 10 undefined
const c = 1;
console.log(c,window.c); // 1 undefined
2.let,const 宣告的變數 不存在變數提公升, 而var是存在變數提公升的
var a = 1;
console.log(a,b) // 1 undefined
var b = 2;
console.log(b); // 報錯:b is not defined ===> 找不到b這個變數
let b = 10;
console.log(c); // 報錯:c is not defined ===> 找不到c這個變數
const c = 10;
3.let const 形成塊級作用域
if(1)
console.log(a); // 100
console.log(b) // 報錯:b is not defined ===> 找不到b這個變數
if(1)
console.log(a); // 100
console.log(c) // 報錯:c is not defined ===> 找不到c這個變數
4.同一作用域下let和const不能宣告同名變數,而var可以
var a = 100;
console.log(a); // 100
var a = 10;
console.log(a); // 10
let a = 100;
let a = 10;
// 控制台報錯:identifier 'a' has already been declared ===> 識別符號a已經被宣告了。
5.暫存死區
var a = 100;
if(1)
6.const 特點
/** 1、一旦宣告必須賦值,不能使用null佔位。
** 2、宣告後不能再修改
** 3、如果宣告的是復合型別資料,可以修改其屬性
** */
const a = 100;
const list = ;
list[0] = 10;
console.log(list); // [10]
const obj = ;
obj.a = 10000;
JS中var與let const的區別
1.塊級作用域 es5 中作用域有 全域性作用域 函式作用域。沒有塊作用域的概念。es6 中新增了塊級作用域。塊作用域由 包括,if語句和 for語句裡面的也屬於塊作用域。2.與var相比,let和const不存在變數提公升。變數提公升是在變數宣告之前就可以使用,只是變數值為undefined va...
var和let const的區別
let和const是 es6 新增的命令,用於宣告變數,這兩個命令跟 es5 的var有許多不同,並且let和const也有一些細微的不同,再認真閱讀了阮一峰老師的文件後,發現還是有一些不知道的細節 var和let const的區別 塊級作用域 不存在變數提公升 暫時性死區 不可重複宣告 let c...
var和let const的區別
let和const是 es6 新增的命令,用於宣告變數,這兩個命令跟 es5 的var有許多不同,並且let和const也有一些細微的不同,再認真閱讀了阮一峰老師的文件後,發現還是有一些不知道的細節.部落格 前端積累文件 github var和let const的區別塊級作用域 不存在變數提公升 暫...