es6學習過程(一)

2021-08-10 10:34:10 字數 1251 閱讀 9175

一、let關鍵字的用途

在平時我們寫**的時候,都是用var來宣告乙個變數(其實也沒有其他的關鍵字了==)。但是在es6出來以後,除了var,還可以使用let來宣告變數。

為什麼會出現let而不僅僅使用var就好了呢? 那是因為var這個關鍵字在某些時候是很坑的。

var的不足之處

1.如果使用var宣告的變數會影響到其他的作用域。

比如說下面這個例子,從例子來上看我們是想讓執行arr[8]的時候彈出8的,但是為什麼會彈出的是10呢?

剛開始的時候我也比較困惑,但是我在for的下面列印了一次i我就明白了。因為for迴圈結束以後,i已經變為10了。此時在執行arr[8]的時候實際上執行的就是function 這個函式。 那麼此時的i是多少呢? 上面已經提到了,此時的i是10。 所以彈框彈出來的自然就是10了。

那麼怎樣才能達到我們想要的效果呢?

很簡單!將for迴圈裡面的var變成let就可以了。

為什麼用let可以,但是使用var就不行了呢?

這是因為let宣告的變數僅僅在自己的塊級作用域中起作用,出了自己的作用域就不起作用了。 在案例中,若是將var變成let,控制台中就會報錯,i is not defined 。

lang="en">

charset="utf-8">

titletitle>

head>

var arr = ;

for (var i=0;i<10;i++)

}console.log(i); //i = 10

arr[8]() // i = 10

script>

body>

html>

2.使用var宣告變數會出現「變數提公升」的現象

我們都知道,js的**是從上到下一條一條的執行的。但是這裡控制台列印為什麼不會報錯呢?

那是因為在js中,js會將script標籤中用到的所有變數在一開始的時候就將它們全部的宣告在當前所在的作用域,所以並不會出現報錯而是出現未定義的情況。

所以,先宣告再呼叫這個習慣是非常重要的,也更符合常理。

es6入門學習一

1 let和const命令 對於const來說,只宣告不賦值,就會報錯 const的作用域與let命令相同 只在宣告所在的塊級作用域內有效 const和let都不存在是常量提公升,同樣存在暫時性死區,宣告的常量都不可重複,都是先宣告後使用 2 變數的解構賦值 預設值生效的條件是,物件的屬性值嚴格等於...

es6學習筆記(一)

最近在看阮一峰的 es6標準入門 打算在每天早起上班前看一小時,然後寫個部落格總結 關於第二章let,const命令的總結 1 暫時性死區 只要進入當前作用域,所要使用的變數就已經存在,但是,不可獲取,只有等到宣告變數的那一行 出現,才可以獲取和使用該變數 2 函式宣告語句和函式表示式的區別 函式宣...

es6學習筆記(一)

一.let和const let用於定義變數,const用於定義常量,都是塊級作用域。二.陣列的解構賦值 解構陣列 例 var a 1,b 2,c 3 var a,b,c 1,2,3 省略號的使用 var a,c 1,2,3 console.log a a console.log c c a 1c 2...