使用let和const宣告變數和常量

2021-10-08 06:05:29 字數 1804 閱讀 8986

1)let宣告的變數沒有提公升(let宣告的變數也沒提公升,僅僅是沒有初始化)

console.log(a); let a = 110; // cannot access 『a』 before initialization

2)let 配合 {} 也可以形成塊級作用域

if(true)中被訪問到 出了塊就訪問不了

// let b = 666; // let + {} 形成塊級作用域

// }

// console.log(b); // b is not defined

3)使用let宣告的變數不會掛載到go上

let a = 110;

console.log(window.a); // undefined 訪問乙個物件上沒有屬性,得到的就是und

4)使用let不能重複宣告

let a = 1;

let a = 2;

console.log(a); // identifier 『a』 has already been declared

記住:不要使用var來定義變數(使用var宣告變數**執行時有提公升,比較複雜); 使用let宣告變數

const a = 110; // 定義了乙個常量(不會改變的量)

a = 666;

console.log(a); // typeerror: assignment to constant variable.

1)也沒有提公升

console.log(a);

const a = 1; // cannot access 『a』 before initialization

2)也會形成塊級作用域:

if(true)

console.log(a); // a is not defin

3)使用const宣告的常量不會掛載到go上

const a = 1;

console.log(window.a); // undefin

4)使用const不能重複宣告

const a = 1;

const a = 2;

// identifier 『a』 has already been declared

console.log(a);

5)const在宣告常量時,必須賦值

const a;

a = 1;

console.log(a); //syntaxerror: missing initializer in const declaration

看個例子:function sum(a)//這裡因為a不能重複定義,所以語法錯誤,語法錯誤**直接不執行,顯示uncaught syntaxerror: identifier 『a』 has already been declared

sum(200)

console.log(b);

const a = 100;

console.log(a);

}sum(200)```//200 100

詳解let和const變數宣告

let和const在很多任務程師眼裡可能只是變數宣告符,其實錯了!它還是有很多小細節值得注意的,這裡我簡單介紹幾點。一 塊級作用域 在es6之前我們腦海裡應該只存在全域性作用域和函式級作用域,沒有塊級作用域。那麼為什麼要引入塊級作用域呢?相信很多剛入門的同學看到上述 會有所不解,其實在全域性作用域s...

let 和 const 宣告變數和常量 var

01 作用域只侷限於當前 塊 console.log str1 張三 console.log str2 無列印結果 02 使用let宣告的變數的作用域不會被提公升 03 在相同作用域下不能申明相同的變數 04 for迴圈體現let的父子作用域 var btns document.queryselec...

使用let宣告變數

es5宣告變數的問題 1.全域性變數掛載到全域性物件 全域性物件成員汙染問題。let宣告的變數不會掛載到全域性物件。2.允許重複的變數宣告,導致變數被覆蓋。let宣告的變數不允許當前作用域範圍內重複宣告。3.變數提公升 怪異的資料訪問,閉包問題。使用let不會有變數提公升,因此,不能在定義變數之前使...