ES6初步學習

2021-07-23 14:36:25 字數 1890 閱讀 6265

在es5裡只有全域性作用域和函式作用域的區分,會造成一些定義的內容被覆蓋掉  就像for迴圈定義事件這種情況會出現
var a=2;

if(a>1)

console.log(name);

es6 let/const

let 起到了乙個塊級作用域的作用,再出了所在{}後在使用let所定義的東西就會失效

let name="output";

let a=2;

if(a>1)

console.log(name);

利用let可以解決迴圈取值的問題

for(let i=0;i<6;i++)

}console.log(i);//報錯——因為出了塊級作用域,所以就不管用了。

const 用來定義的變數不可更改

const i=5;

i="s";

console.log(i);

const有乙個很好的應用場景,就是當我們引用第三方庫的時宣告的變數,用const來宣告可以避免未來不小心重新命名而導致出現bug:

es6中還引入了類的概念,這樣物件導向的實現變得也更加容易了

class 建立乙個類

class animal

says(say)

}let animal=new animal();

animal.says('hello');

class cat extends animal

}let cat=new cat();

cat.says("!miao!miao");

function函式運用

函式作為最常用的在這裡被簡化為 箭頭函式 =>

var a=function(one)//es5

let b=one=>;

當我們使用箭頭函式時,函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件。並不是因為箭頭函式內部有繫結this的機制,

實際原因是箭頭函式根本沒有自己的this,它的this是繼承外面的,因此內部的this就是外層**塊的this。

destructuring解構賦值

自動解析陣列或物件中的值,比如若乙個函式返回多個值,常規是返回乙個

/*__es5__*/

var send="pen";

var receive="*****";

var thing=;

console.log(thing);//object

/*____es6____*/

let senda="pen";

let receivea="*****";

let thing=;

console.log(thing)//object 效果一樣,但是卻減少了**量。

default 預設值

傳統指定預設引數的方式

function sayhello(name)

字串模板

字串模板相對簡單易懂些。es6中允許使用反引號 ` 來建立字串,此種方法建立的字串裡面可以包含由美元符號加花括號包裹的變數$

運用es6的預設引數

function sayshello2(name='dude')');

}sayhello();//hello dude

sayhello('wayou');//hello wayou

sayhello2();//hello dude

sayhello2('wayou');//hello wayou

ES6 初步了解類

什麼是類 類,作為建立物件的模板,通過class關鍵字,來定義 其實更像是將 建構函式 原型 集中在一起 全部表達出來 constructor 就好比建構函式 類寫法注意 class animal 類似原型中的方法 eat 我還不餓 var dog newanimal dog 11 console....

ES6學習筆記

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

ES6學習筆記

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