修煉js 6 es6新特性

2021-10-23 13:56:05 字數 1300 閱讀 2705

es6能夠讓我們按照一定的模式,從陣列或物件中提取值並賦值其他變數,這被稱之為結構賦值,接下來讓我們看看乙個簡單的例子。

var

[a,b,c]=[

1,2,

3];console.

log(a)

;// 1

這段**將右邊的陣列的值分別賦值給a,b,c三個變數,這只是最簡單的應用,它可以更複雜,例如

var

[a,[b]

,c]=[1

,[2,

3],4

];// 這也可以

既然陣列可以結構複製,那麼物件呢,答案是肯定的,物件也是可以的。例如

var

=

值得注意的是前面的變數名和後面的屬性名稱必須保持一致,這樣才能訪問到,若不一致則值為undefined,看到這突然覺得物件的解構賦值挺拉閘的,別急繼續往下看,那麼我們要想給他重新更改乙個變數名怎麼做呢,請看

var

=;

ok! 現在我們已經可以通過name,age來訪問了,當然這也只是物件結構賦值最簡單的應用。

這是es6新增的,那麼它是什麼呢,他是es6標準引入的新的函式,它的定義看起來與函式差別不大,讓我們先看看它的樣子和普通函式有什麼區別

// 函式

function

demo()

// generitor物件

function

*gen()

ok看起來其實差別也不大,不過是使用function* 定義在函式體內新增了乙個關鍵字而已,事實真的這樣嗎,那麼這個關鍵字是幹什麼的呢?當這個函式執行遇到yield時就會返回它後面的值,但是這個函式並沒有真正意義上的執行完畢,只是將控制權讓給其它函式去執行了當執行next()方法時回到剛才被中止執行的地方,next()函式可以傳遞引數,第乙個next()傳參無效,第乙個next()更像是啟動器。例如

let

_increment

=function

*increment()

}var _increment =

increment()

console.

log(_increment.

next()

);console.

log(_increment.

next()

);// 無限自增函式

想要更深入的學習generitor 點這裡或這裡

es6新特性 ES6新特性(一)

var 1 var宣告的是函式作用域 區域性 但在if for等定義的變數是全域性的 2 var 具有變數提公升,預解析 3 在同乙個作用域下,var可以宣告多次 4 var 宣告的變數會掛載到window上 let1 let不存在變數提公升,在變數使用之前,必須要先宣告 2 let在同一作用域下,...

ES6新特性須知

1.1es5之前函式想要賦預設值var funes5 function a,b,c 1.2es6開始函式想要賦預設值var funes6 function a 50,b 60,c 70 2.1es5之前字串拼接或者拼接屬性值只能如下var a lbj var b 50 var c name a ye...

es6新特性分享

1 字串查詢 es5使用是indexof 返回字元第一次出現的位置int值 es6新增了3個方法 includes startswith endwith 返回bool值 includes 是否包含字元 startswith 首字母是否包含字元 endwith 末尾是否包含字元 2 數值擴充套件 nu...