es6學習筆記 一)let const

2021-10-18 23:44:22 字數 1961 閱讀 4681

最近在研究低**,簡單的已經會了,但是稍微複雜一點的功能就都得靠寫**,而模板給提供的示例**又看不懂,好心塞,於是重新學習一下es6吧,記錄一下學習的過程。

學習的路徑非常簡單,如果你需要入門一門你不知道的技術,那首先需要承認自己是菜鳥,那菜鳥最好的學習途徑就是學習菜鳥教程,好了,教程給你:菜鳥教程

那麼就開始和筆者一起作為菜鳥一樣開始學習吧,讓筆者這只老菜鳥帶領著你們這些新菜鳥一起撲騰撲騰往前飛吧。

菜鳥剛開始學習,我建議從cmd開始,不要一上手就是ide,我們只是先要學習基本的語法,有了概念你再去開車唄。

快捷鍵 win+r,輸入cmd,開啟我們古老的dos

然後在黑視窗裡輸入node這個命令開啟**模式

然後就切換到**模式了,這樣我們就可以輸入**了

然後我們學習一下最基本的let命令,它這個是用來定義變數名的,我們傳統的js是用var定義變數名,一旦命名就全域性都生效了,有時候就不太好,所以新的es6語法使用let來定義變數,保持區域性有效

我們在大括號裡定義的變數,只在大括號裡生效,如果離開之後再訪問就會報錯,提示a未定義,那如果我們換成var呢?

看到沒離開之後a變數還生效,這樣在程式呼叫的時候就可能發生一些意想不到的錯誤。

第二個特性是let保證變數只允許宣告一次,第二次重複宣告就會報錯

但是var 就可以重複定義變數

教程裡又給了第二個示例**,展示在迴圈中使用var和let的區別,使用var

**照著教程敲就可以,我遇到的問題是可能漏掉乙個}程式就會不執行,輸入的時候仔細對一下就行,執行結果是全部是10,不是我們想要的,如果換成let呢

換成let就對了,所以能用let的地方還是盡量用let定義變數,以免不必要的錯誤發生

教程中還講了變數提公升的概念

未定義就使用會報錯,如果使用var的話就不會報錯。

const關鍵字用來宣告靜態變數,一旦賦值就不允許改變,宣告時不賦值會報錯

這個地方報錯倒是我沒想到的地方,在**塊內使用未賦值的靜態變數會報錯

教程的最後部分解釋了指標的問題,這個在c語言中是一種常見的概念,所謂指標就是指向記憶體中的乙個位址,如果const定義基本型別變數,就不允許記憶體中的位址的內容發生改變,如果宣告為複雜型別如物件,只是指標不允許修改,物件的值還允許修改。這一段話還挺難理解的,所以我一般就記住用const來宣告常量就好了。

其實教程上這一章主要講了兩個語法,let和const,我們只要記得他們是用來定義變數的就行,乙個是定義區域性變數,乙個是定義常量,當然為了講明白,教程還和var進行了對比,也是需要我們記憶的知識點。

ES6中對let cons的解釋

比如 var one 10 if true console.log one 10 因為再上面使用let定義的one只在上面那個 塊中有效,不影響外面的這裡說的 塊就是乙個 包起來的範圍就是乙個 塊 如 const two 20 two 10 報錯,這樣就等於改變了它原來指向的位址了 const ar...

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...