注冊(cè)登錄

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

2017-12-05
導(dǎo)讀:2017年6月14日,微信小程序支持es6已經(jīng)是當(dāng)下微信小程序開(kāi)發(fā)最熱門(mén)的話題,下面將從多方面來(lái)談?wù)勀J(rèn)啟用javasctipt嚴(yán)格模式相關(guān)的內(nèi)容。...

微信小程序支持es6已經(jīng)是當(dāng)下微信小程序開(kāi)發(fā)最熱門(mén)的話題,下面將從多方面來(lái)談?wù)勀J(rèn)啟用javasctipt嚴(yán)格模式相關(guān)的內(nèi)容。

不需要申明嚴(yán)格模式

不需要將"use strict"放在腳本文件的第一行,微信小程序開(kāi)發(fā)工具開(kāi)啟ES6轉(zhuǎn)換功能的情況下,默認(rèn)啟用javasctipt嚴(yán)格模式(Strict Mode)。

用塊級(jí)作用域代替IIFES

IIFE(立即執(zhí)行函數(shù)表達(dá)式)的通常用途是創(chuàng)造一個(gè)內(nèi)部的作用域,在ES6中,能夠創(chuàng)造一個(gè)塊級(jí)作用域而不僅限于函數(shù)作用域。塊級(jí)作用域的出現(xiàn)使得獲得廣泛應(yīng)用的立即執(zhí)行匿名函數(shù)(IIFE)不再必要了。

IIFE:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

ES6塊級(jí)作用域:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

使用for...of循環(huán)

ES6 借鑒 C++、Java、C# 和 Python 語(yǔ)言,引入了for...of循環(huán),作為遍歷所有數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一的方法。

一個(gè)數(shù)據(jù)結(jié)構(gòu)只要部署了Symbol.iterator屬性,就被視為具有iterator接口,就可以用for...of循環(huán)遍歷它的成員。也就是說(shuō),for...of循環(huán)內(nèi)部調(diào)用的是數(shù)據(jù)結(jié)構(gòu)的Symbol.iterator方法。

for...of循環(huán)可以使用的范圍包括數(shù)組、Set 和 Map 結(jié)構(gòu)、某些類似數(shù)組的對(duì)象、Generator 對(duì)象以及字符串。

遍歷數(shù)組:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

遍歷Set:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

for...of 用于遍歷一個(gè)迭代器:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

for...in 用來(lái)遍歷對(duì)象中的屬性:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

數(shù)組實(shí)例的forEach方法遍歷一個(gè)數(shù)組的元素和索引

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

for...of循環(huán)支持 ES6 迭代(通過(guò) iterables 和 iterators)和解構(gòu)。。通過(guò)數(shù)組的ES6新方法enteries()結(jié)合解構(gòu),可以代替數(shù)組實(shí)例的forEach方法。

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

通過(guò)變量解構(gòu)交換兩個(gè)變量的值

如果將一對(duì)變量放入一個(gè)數(shù)組,然后將數(shù)組解構(gòu)賦值相同的變量(順序不同),就可以不依賴中間變量交換兩個(gè)變量的值。

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

使用展開(kāi)運(yùn)算符和剩余操作符

展開(kāi)運(yùn)算符(the spread syntax )允許一個(gè)表達(dá)式在某處展開(kāi),在多個(gè)參數(shù)(用于函數(shù)調(diào)用)或者多個(gè)元素(用于數(shù)組字面量)或者多個(gè)變量(用于解構(gòu)賦值)的地方就會(huì)這樣。

用于函數(shù)調(diào)用語(yǔ)法:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

用于數(shù)組字面量語(yǔ)法:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

剩余操作符(the rest operator),它的樣子看起來(lái)和展開(kāi)操作符一樣,但是它是用于解構(gòu)數(shù)組和對(duì)象。在某種程度上,剩余元素和展開(kāi)元素相反,展開(kāi)元素會(huì)“展開(kāi)”數(shù)組變成多個(gè)元素,剩余元素會(huì)收集多個(gè)元素和“壓縮”成一個(gè)單一的元素。

剩余參數(shù)(rest parameter)允許長(zhǎng)度不確定的實(shí)參表示為一個(gè)數(shù)組。

剩余參數(shù)語(yǔ)法:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

使用示例:

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

比較兩個(gè)值是否嚴(yán)格相等

Object.is()用來(lái)比較兩個(gè)值是否嚴(yán)格相等。它與嚴(yán)格比較運(yùn)算符(===)的行為基本一致,不同之處只有兩個(gè):一是+0不等于-0,二是NaN等于自身。

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

為了滿足移動(dòng)端的適配,可在程序中加入Polyfill

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

對(duì)象屬性復(fù)制

Object.assign方法用來(lái)將源對(duì)象(source)的所有可枚舉屬性,復(fù)制到目標(biāo)對(duì)象(target)。它至少需要兩個(gè)對(duì)象作為參數(shù),第一個(gè)參數(shù)是目標(biāo)對(duì)象,后面的參數(shù)都是源對(duì)象。只要有一個(gè)參數(shù)不是對(duì)象,就會(huì)拋出TypeError錯(cuò)誤。

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

如果目標(biāo)對(duì)象與源對(duì)象有同名屬性,或多個(gè)源對(duì)象有同名屬性,則后面的屬性會(huì)覆蓋前面的屬性。

為了滿足移動(dòng)端的適配,可在程序中加入Polyfill

微信小程序支持es6 默認(rèn)啟用javasctipt嚴(yán)格模式

 

 


重磅推薦:小程序開(kāi)店目錄

第一部分:小商店是什么

第二部分:如何開(kāi)通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開(kāi)店任務(wù)常見(jiàn)問(wèn)題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開(kāi)發(fā)

電話咨詢 微信咨詢 預(yù)約演示 0元開(kāi)店