原因:為了瀏覽器兼容,以及為了在node.js環(huán)境可以順暢運行應用程序。ES6作為JS的新規(guī)范,加入了很多新的語法和API,但現(xiàn)代瀏覽器對ES6新特性支持度不高,所以需將ES6代碼轉(zhuǎn)為ES5代碼;只需在項目中安裝和配置好Babel工具即可。
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
為什么要將es6轉(zhuǎn)為es5?
簡單答案就是:為了瀏覽器兼容,以及為了在 node.js 環(huán)境可以順暢運行應用程序。
ES6作為JS的新規(guī)范,加入了很多新的語法和API,而市面上的瀏覽器并沒有全部兼容,所以需要將ES6語法代碼轉(zhuǎn)為ES5的代碼。
現(xiàn)代瀏覽器對ES6新特性支持度不高,所以要想在瀏覽器中直接使用ES6的新特性就得借助別的工具來實現(xiàn)。
在 node.js 環(huán)境中,node 對 ES6 的支持一直被詬病,到了 13 版本之后,才出了模塊模式(在 package.json 中增加一句:“type”: “module”),但有些庫仍然不支持 ES6 語法。因此,如果你的 node.js 程序遇到不認識 ES6 語法的時候,請使用 Babel 轉(zhuǎn)碼一下也許就能解決問題。
怎么將es6轉(zhuǎn)為es5?
用babel將es6轉(zhuǎn)換成es5。
下面我們寫出在命令行使用 Babel 的過程,讓你清楚轉(zhuǎn)譯過程的全部內(nèi)容。
1. 在項目中安裝 Babel 的命令行工具
npm?install?-D?babel-cli
2. 準備 ES6 代碼
通常我們把源代碼放在 src 目錄下,如果你沒有現(xiàn)成的 ES6 代碼,那就在 src 目錄下創(chuàng)建一個:
//?src/example.js class?Hello?{ ??static?world()?{ ????console.log('Hello,?World!'); ??} } Hello.world();
3. 配置 Babel
Babel 是通過插件和預設值(preset)來轉(zhuǎn)譯代碼(因此它可以轉(zhuǎn)譯的不只是 ES6)。為了轉(zhuǎn)譯 ES6 為 ES5,我們只需要配置 env 預設值就可以了,安裝這個插件:
npm?install?-D?babel-preset-env
我們還需要一個配置文件,在項目根目錄下創(chuàng)建文件:.babelrc,內(nèi)容如下:
//?.babelrc { ??"presets":?["env"] }
4. 創(chuàng)建 npm 命令
這一步不是必須的,因為前面已經(jīng)配置好了,你可以直接執(zhí)行命令:
babel?src?-d?build
這樣就會把 src 目錄下的 Javascript 代碼轉(zhuǎn)譯成 ES5,并存放在 build 目錄下。
習慣上,我們將上門的命令放到 npm 命令中。在項目的 package.json 中,輸入下面的內(nèi)容:
"scripts":?{ ??"build":?"babel?src?-d?build", },
這樣你就可以使用下面的命令來轉(zhuǎn)譯 ES6 代碼:
npm?run?build
【相關推薦:javascript視頻教程、web前端】
以上是為什么要將es6轉(zhuǎn)為es5的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

在ES6中,可以利用數(shù)組對象的reverse()方法來實現(xiàn)數(shù)組反轉(zhuǎn),該方法用于顛倒數(shù)組中元素的順序,將最后一個元素放在第一位,而第一個元素放在最后,語法“array.reverse()”。reverse()方法會修改原始數(shù)組,如果不想修改需要配合擴展運算符“...”使用,語法“[...array].reverse()”。

async是es7的。async和await是ES7中新增內(nèi)容,是對于異步操作的解決方案;async/await可以說是co模塊和生成器函數(shù)的語法糖,用更加清晰的語義解決js異步代碼。async顧名思義是“異步”的意思,async用于聲明一個函數(shù)是異步的;async和await有一個嚴格規(guī)定,兩者都離不開對方,且await只能寫在async函數(shù)中。

為了瀏覽器兼容。ES6作為JS的新規(guī)范,加入了很多新的語法和API,但現(xiàn)代瀏覽器對ES6新特性支持度不高,所以需將ES6代碼轉(zhuǎn)為ES5代碼。在微信web開發(fā)者工具中,會默認使用babel將開發(fā)者ES6語法代碼轉(zhuǎn)換為三端都能很好支持的ES5的代碼,幫助開發(fā)者解決環(huán)境不同所帶來的開發(fā)問題;只需要在項目中配置勾選好“ES6轉(zhuǎn)ES5”選項即可。

步驟:1、將兩個數(shù)組分別轉(zhuǎn)為set類型,語法“newA=new Set(a);newB=new Set(b);”;2、利用has()和filter()求差集,語法“new Set([...newA].filter(x =>!newB.has(x)))”,差集元素會被包含在一個set集合中返回;3、利用Array.from將集合轉(zhuǎn)為數(shù)組類型,語法“Array.from(集合)”。

es5中可以利用for語句和indexOf()函數(shù)來實現(xiàn)數(shù)組去重,語法“for(i=0;i

在es6中,暫時性死區(qū)是一個語法錯誤,是指let和const命令使區(qū)塊形成封閉的作用域。在代碼塊內(nèi),使用let/const命令聲明變量之前,該變量都是不可用的,在變量聲明之前屬于該變量的“死區(qū)”;這在語法上,稱為“暫時性死區(qū)”。ES6規(guī)定暫時性死區(qū)和let、const語句不出現(xiàn)變量提升,主要是為了減少運行時錯誤,防止在變量聲明前就使用這個變量,從而導致意料之外的行為。

不是,require是CommonJS規(guī)范的模塊化語法;而es6規(guī)范的模塊化語法是import。require是運行時加載,import是編譯時加載;require可以寫在代碼的任意位置,import只能寫在文件的最頂端且不可在條件語句或函數(shù)作用域中使用;require運行時才引入模塊的屬性所以性能相對較低,import編譯時引入模塊的屬性所所以性能稍高。

在es6中,可以利用array對象的length屬性來判斷數(shù)組里總共有多少項,即獲取數(shù)組中元素的個數(shù);該屬性可返回數(shù)組中元素的數(shù)目,只需要使用“array.length”語句即可返回表示數(shù)組對象的元素個數(shù)的數(shù)值,也就是長度值。
