學習總結ES6 語法基礎let

2021-08-21 07:21:11 字數 1246 閱讀 4673

首先是let是什麼:let允許你宣告乙個作用域被限制在塊級中的變數、語句或者表示式。與var關鍵字不同的是,它宣告的變數只能是全域性或者整個函式塊的。

我來舉乙個例子

通過上述**可以看出在if語句**塊中同時用var和let宣告了變數,但是let宣告的變數在**塊的外面列印是報錯的,而var宣告的變數是正常的。

與var相比 let更加嚴謹一些 var類似以下情況會出現一些問題

var a = 1;

function

foo(argument)

console.log("a:",a);//a: 1

foo();//a: 2

兩個a的值不一樣的情況。

var 在迴圈中宣告之後 迴圈外仍然存在,而let則不會出現這種情況,當離開作用域後let將會銷毀變數。

還有一點關於變數提公升的問題

可以看見輸出的是未定義而不是報錯,說明變數是被宣告過的但是沒有賦值,以上的if**塊是不會被執行的但是變數被宣告了的。這就是變數提公升。會將變數宣告提到**的最前面宣告。

let繫結不受變數提公升的約束,這意味著let宣告不會被提公升到當前執行上下文的頂部。在塊中的變數初始化之前,引用它將會導致 referenceerror(而使用 var 宣告變數則恰恰相反,該變數的值是 undefined )

待補充。。。

常用ES6基礎語法總結

用自己易於理解的語言總結的,歡迎各位大佬指點 1 用來宣告塊級作用域 let宣告的變數只在其塊級作用域內有效,而var通常在函式作用域或全域性作用域內有效塊級作用域 指用花括號包裹起來形成的語句塊,如if for while迴圈語句等。if true console.log a a is not d...

ES6語法 let和const區別

var變數穿透問題 lang en charset utf 8 name viewport content width device width,initial scale 1.0 documenttitle head let和const 解決 1 var變數穿透的問題 2 變數修改的問題 for ...

ES6語法總結

1 物件的寫法 es5中物件 es6中物件 注意這種寫法的屬性名稱和值變數是同乙個名稱才可以簡寫,否則要想es5那樣的寫法,例如 2 在物件中的方法的寫法 es5中物件 substrict function es6中物件 substrict 3 物件的匯出寫法 es5兩種形式 1 module.ex...