js中var和let,const區別

2021-10-04 20:29:39 字數 1478 閱讀 3321

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的區別塊級作用域 不存在變數提公升 暫...