摘要:模塊化之前,前端模塊化之路可謂是布滿滄桑,從最開(kāi)始的刀耕火種,無(wú)數(shù)的腳本層疊在一起引入到匿名函數(shù)自執(zhí)行封裝代碼再到后來(lái)的,以及后面的和可以看出前端模塊化一直在進(jìn)步,但是始終沒(méi)有一致的標(biāo)準(zhǔn),直到實(shí)現(xiàn)模塊化之后,前端的模塊化之路才慢慢的變得比較
ES6模塊化之前,前端模塊化之路可謂是布滿滄桑,從最開(kāi)始的刀耕火種,無(wú)數(shù)的腳本層疊在一起引入
到匿名函數(shù)自執(zhí)行封裝代碼
(function(window){ // your code here })();
再到后來(lái)的common.js,以及后面的require.js和AMD
// a.js exports.add = function() { }; // b.js var add = require("a").add; exports.increment = function() { }; // c.js var inc = require("b").increment;
可以看出前端模塊化一直在進(jìn)步,但是始終沒(méi)有一致的標(biāo)準(zhǔn),直到ES6實(shí)現(xiàn)模塊化之后,前端的模塊化之路才慢慢的變得比較統(tǒng)一,ES6使用import和export來(lái)實(shí)現(xiàn)模塊化,,默認(rèn)情況下,模塊皆是在嚴(yán)格模式下運(yùn)行可以導(dǎo)出外層函數(shù),類(lèi)與對(duì)象或者所有定義的變量
// a.js export function hello() { return "hello world" } // b.js import {hello} from "a.js"; function sayHello() { hello(); } sayHello();
ES6模塊化中import和export也可以重命名,若是有時(shí)候?qū)С龅拿指渌恼谑褂弥械拿钟袥_突的時(shí)候,在導(dǎo)入的時(shí)候可以使用as來(lái)重命名(突然間想起來(lái)SQL)
import {hello as cala} from "a.js";
可以用兩個(gè)不一樣的名字來(lái)導(dǎo)出相同的值,ES6中可以使用default關(guān)鍵字來(lái)實(shí)現(xiàn)默認(rèn)導(dǎo)出,不能在語(yǔ)句和函數(shù)之內(nèi)使用export關(guān)鍵字,只能在模塊頂部使用
function hello() { return "hello world" } export { hello as foo, hello as bar } //default var obj={ key1:value1, key2:value2 }; export {obj as default} export default{ key1:value1, key2:value2 }
ES6模塊化負(fù)責(zé)處理不同模塊間的耦合關(guān)聯(lián),具體到編譯時(shí)處理所有的模塊依賴,將模塊打包成文件傳輸?shù)裙ぷ骺梢杂么虬ぞ遷ebpack等來(lái)完成,目前來(lái)說(shuō),ES6模塊化的標(biāo)準(zhǔn)仍然在路上,不過(guò)也已經(jīng)普及,以后希望能繼續(xù)發(fā)展,讓前端更好的發(fā)展。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/87293.html
摘要:謹(jǐn)記,請(qǐng)勿犯這樣的錯(cuò)誤。由于在之前的教程中,積累了堅(jiān)實(shí)的基礎(chǔ)。其實(shí),這是有緣由的其復(fù)雜度在早期的學(xué)習(xí)過(guò)程中,將會(huì)帶來(lái)災(zāi)難性的影響。該如何應(yīng)對(duì)對(duì)于來(lái)說(shuō),雖然有大量的學(xué)習(xí)計(jì)劃需要采取,且有大量的東西需要學(xué)習(xí)。 前言倘若你正在建造一間房子,那么為了能快點(diǎn)完成,你是否會(huì)跳過(guò)建造過(guò)程中的部分步驟?如在具體建設(shè)前先鋪設(shè)好部分石頭?或直接在一塊裸露的土地上先建立起墻面? 又假如你是在堆砌一個(gè)結(jié)婚蛋糕...
摘要:謹(jǐn)記,請(qǐng)勿犯這樣的錯(cuò)誤。由于在之前的教程中,積累了堅(jiān)實(shí)的基礎(chǔ)。其實(shí),這是有緣由的其復(fù)雜度在早期的學(xué)習(xí)過(guò)程中,將會(huì)帶來(lái)災(zāi)難性的影響。該如何應(yīng)對(duì)對(duì)于來(lái)說(shuō),雖然有大量的學(xué)習(xí)計(jì)劃需要采取,且有大量的東西需要學(xué)習(xí)。 前言倘若你正在建造一間房子,那么為了能快點(diǎn)完成,你是否會(huì)跳過(guò)建造過(guò)程中的部分步驟?如在具體建設(shè)前先鋪設(shè)好部分石頭?或直接在一塊裸露的土地上先建立起墻面? 又假如你是在堆砌一個(gè)結(jié)婚蛋糕...
摘要:缺點(diǎn)不兼容以下瀏覽器七高階函數(shù)方法用來(lái)判斷一個(gè)數(shù)組是否包含一個(gè)指定的值,根據(jù)情況,如果包含則返回,否則返回。方法六高階函數(shù)優(yōu)點(diǎn)高階函數(shù)的高級(jí)用法。 一、前言 數(shù)組去重是一個(gè)老生常談的問(wèn)題,但是有時(shí)候會(huì)彈出點(diǎn)其他東西。 二、雙重循環(huán) 這個(gè)方法是最常見(jiàn)的,最原始的方法。 // 方法一:雙重循環(huán) var array = [1,1,1,2,1,1,2] function unique(arr...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
閱讀 2838·2021-11-15 11:39
閱讀 1816·2021-09-24 09:48
閱讀 1060·2021-09-22 15:36
閱讀 3581·2021-09-10 11:22
閱讀 2991·2021-09-07 09:59
閱讀 952·2021-09-03 10:28
閱讀 667·2021-09-02 15:15
閱讀 2738·2021-08-27 16:24