ES6新特性 let和const的使用

2022-01-13 10:14:41 字數 1690 閱讀 6307

(宣告, 本文的所有**均在node的最新穩定版本v4.4.3中執行的, 如果在瀏覽器中執行請把js的執行環境提公升為es6)

以前一直用var定義變數, 現在有了兩種新的定義變數的方式, 1:let, 2:const;本文大概概括下使用letconst定義變數有哪些好處;

使用var宣告變數,存在宣告提前的問題, 輸出的tmp為"undefined":

}

f();

}

如果我們把定義tmp的方式改為let呢? 那麼tmp輸出的結果為當前的日期。

括號中;

let tmp = "

hello world";}}

f();

}

letconst不但擁有塊狀作用域, 還也不存在宣告提前這個玩意兒, 以下**會報referenceerror

}

使用let宣告的元素作用域更加明確, 不會出現作用域混亂的情況, 可以減少bug的產生;

console.log(foo);

}

以上這段**相當於是iife(立即執行函式表示式), 效果和以下的相同;

());

console.log(foo);

}

再來猜猜這個的結果是什麼,(var 形式宣告的變數會提公升到{}外面去哦 , {}形式的塊狀作用域相當於是if(true)的寫法):

console.log(foo);

}

view code

使用let宣告的變數不能重複宣告,否則會出現一下錯誤:

syntaxerror: identifier '

a' has already been declared

注意: 在全域性下用let宣告變數和用var宣告變數還是有區別的:

使用const定義的常量, 而且定義一次以後不能再進行更改, 否者會報錯;

使用const定義的常量, 擁有let一樣的特性(無宣告提前有塊狀作用域, 重複宣告);

但是要注意, 如果給常量定義的是物件,只要該物件指向在記憶體中的位址不發生改變, 資料可以隨便改的(這涉及到計算機的傳值和傳址);

物件:

;

foo.bar = 1111

; console.log(foo.bar);

}

陣列:

這些新語法讓js更加規範, 也更加適合大專案, 我彷彿猜到以後要用private和public宣告變數了....( ╯□╰ )

參考:阮一峰:

nono

出處:287101329

18101055830

ES6新特性 let和const的使用

宣告,本文的所有 均在node的最新穩定版本v4.4.3中執行的,如果在瀏覽器中執行請把js的執行環境提公升為es6 以前一直用var定義變數,現在有了兩種新的定義變數的方式,1 let,2 const 本文大概概括下使用let和const定義變數有哪些好處 使用var宣告變數,存在宣告提前的問題,...

ES6新特性 let的使用

css doctype html en utf 8 viewport content width device width,initial scale 1.0 document title head es6新增了let命令,用來宣告變數 它的用法類似var,但所宣告的變數,只在let命令所在的 塊內...

es6新特性 ES6新特性(一)

var 1 var宣告的是函式作用域 區域性 但在if for等定義的變數是全域性的 2 var 具有變數提公升,預解析 3 在同乙個作用域下,var可以宣告多次 4 var 宣告的變數會掛載到window上 let1 let不存在變數提公升,在變數使用之前,必須要先宣告 2 let在同一作用域下,...