ES6學習摘要(01)(新人學習)

2021-09-14 04:32:57 字數 2443 閱讀 4896

由於最近本人在學習es6,做一些筆記能夠更好的熟悉,就趁此機會來寫一篇關於es6的新人學習摘要吧。希望大佬可以給出一些意見,也希望和我一樣的新人能更好更快的了解和熟悉es6。

首先在這邊我要感謝阮大大~有這麼好的入門教程(搬運工,部分內容不講述)。

其次註明本文只用於本人和其他新手了解熟悉es6,非其他用途。

下面就開始我們簡單的學習吧~

不多贅述,es6相容性

在學習let和const之前,我們先來了解一下塊級作用域,塊級作用域主要適用兩種場景,一種是內層變數覆蓋外層變數;第二種場景是用來計數的迴圈變數洩露為全域性變數。

// 第一種場景

var tmp = new date();

function f()

}f(); // undefined

// 第二種場景

var s = 'hello';

for (var i = 0; i < s.length; i++)

console.log(i); // 5

塊級作用域能很好的解決這兩方面的問題,如何增加塊級作用域呢?等我們學習完let和const再來詳述。

1、let和var一樣,用來宣告變數,差別在於let申明的變數的作用域只針對於let命令所在的**塊內。

a // referenceerror: a is not defined.

b // 1

在**塊中我們分別以let和var申明了a,b兩個變數,在列印a,b兩個變數的時候發現用var宣告的變數b的值是能正確列印的,但是用let申明的a變數報錯,這表面兩者申明的作用域不同。

用let申明的變數無變數提公升

// var 的情況

console.log(foo); // 輸出undefined

var foo = 2;

// let 的情況

console.log(bar); // 報錯referenceerror

let bar = 2;

上面的**中同樣在宣告變數前列印出該變數,var申明的變數輸出undefined,而let報錯,即變數bar不存在,所以使用let一定要在申明後進行使用。

暫時性死區

暫時性死區是什麼意思呢,簡單來說就是從一開始就形成了封閉作用域。凡是在宣告之前就使用這些變數,就會報錯。

var tmp = 123;

if (true)

不允許重複宣告

let不允許在相同作用域內,重複宣告同乙個變數。

// 報錯

function func()

2、const宣告乙個唯讀的常量。一旦宣告,常量的值就不能改變。

const宣告的變數不得改變值,這意味著,const一旦宣告變數,就必須立即初始化,不能留到以後賦值。

const的作用域與let命令相同:只在宣告所在的塊級作用域內有效。

const命令宣告的常量也是不提公升,同樣存在暫時性死區,只能在宣告的位置後面使用。

const foo;

// syntaxerror: missing initializer in const declaration

const pi = 3.1415;

pi // 3.1415

pi = 3;

// typeerror: assignment to constant variable.

if (true)

max // uncaught referenceerror: max is not defined

3、塊級作用域

新增方式:

}}}};

優點:使得獲得廣泛應用的立即執行函式表示式(iife)不再必要了。

// iife 寫法

(function () ());

// 塊級作用域寫法

注意:只有在es6中,允許以下三條規則(es5不可)

4、do表示式(提案)

不贅述,使得塊級作用域可以變為表示式,也就是說可以返回值

let x = do ;

ES6學習筆記

let 塊變數 作用域為塊 const 常亮 作用域為當前塊 解構賦值 例 var x,y 1,2 字元擴充套件 at includes startswith endswith repeat codepointat 模板字串 例 正則的uiy 數值擴充套件 number.isfinite numbe...

ES6初步學習

在es5裡只有全域性作用域和函式作用域的區分,會造成一些定義的內容被覆蓋掉 就像for迴圈定義事件這種情況會出現var a 2 if a 1 console.log name es6 let const let 起到了乙個塊級作用域的作用,再出了所在 後在使用let所定義的東西就會失效 let na...

ES6學習筆記

常用語法 1 let 與var類似,不同的是let定義的變數有塊級作用域,比如 var a 1 while true alert a 2 用let let a 1 while true alert a 12 const用來定義變數,但是定義之後的值不能再次更改了。乙個實際的用途是用來定義引入的模組,...