日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Javascript模塊化機(jī)制實(shí)現(xiàn)原理詳解

瀏覽:175日期:2023-11-06 18:39:30

1. 概述

js發(fā)展初期暴露了其缺陷:缺乏模塊,后來(lái)提出了commonJS規(guī)范來(lái)規(guī)范其模塊的規(guī)范。作為JavaScript新手,發(fā)現(xiàn)對(duì)于其JavaScript的模塊機(jī)制,不是很理解。我查閱了一些資料整理了JavaScript CommonJS的原理和機(jī)制。

2. JavaScript

2.1 無(wú)后端的項(xiàng)目

這類(lèi)項(xiàng)目不能使用CommonJS的模塊規(guī)范,這是我起初所犯的錯(cuò)誤。在沒(méi)有es6被大多數(shù)瀏覽器支持的時(shí)候,js文件充斥著var和function,由此引來(lái)了命名沖突和污染,使得JavaScript代碼很復(fù)雜。es6的class概念出現(xiàn)有效規(guī)范了JavaScript的模塊化規(guī)范。由于這類(lèi)項(xiàng)目只能通過(guò)script標(biāo)簽引入,我們?cè)谶@里講一下script標(biāo)簽的相關(guān)知識(shí)。

每當(dāng)瀏覽器解析到<script>標(biāo)簽(無(wú)論內(nèi)嵌還是外鏈)時(shí),瀏覽器會(huì)優(yōu)先下載、解析并執(zhí)行該標(biāo)簽中的javaScript代碼,而阻塞了其后所有頁(yè)面內(nèi)容的下載和渲染。根據(jù)上述對(duì)<script>標(biāo)簽特性的描述,我們知道,在該示例中,當(dāng)瀏覽器解析到<script>標(biāo)簽時(shí),瀏覽器會(huì)停止解析其后的內(nèi)容,而優(yōu)先下載腳本文件,并執(zhí)行其中的代碼,這意味著,其后的test.css樣式文件和<body>標(biāo)簽都無(wú)法被加載,由于<body>標(biāo)簽無(wú)法被加載,那么頁(yè)面自然就無(wú)法渲染了。因此傳統(tǒng)做法是假定point.js文件:

//定義類(lèi)class Point { constructor(x, y) { this.x = x; this.y = y; } toString() { return ’(’ + this.x + ’, ’ + this.y + ’)’; }}

則在index.js中引入point.js,這需要在index.html中body的尾部

<script src='http://m.b3g6.com/bcjs/point.js'></script><script src='http://m.b3g6.com/bcjs/index.js'></script>

這樣就可以在index.js使用point類(lèi)了。

總結(jié)下來(lái):

js類(lèi)庫(kù)必須在header中引入,保證對(duì)之后script引入的js文件的支持,畢竟script標(biāo)簽的執(zhí)行順序是順序執(zhí)行,script標(biāo)簽引入順序和實(shí)際引入順序相同。

自定義的script標(biāo)簽引入的js文件,要放在body的尾部,保證DOM元素渲染結(jié)束。

每個(gè)js文件盡量是es6 class對(duì)象,避免作用域和命名域的沖突。

2.2 后端 服務(wù)器 NodeJS

模塊引用的實(shí)例如下:require方法

const math = require('math');

模塊的定義:

上下文提供了exports對(duì)象用于導(dǎo)出當(dāng)前模塊方法和變量,并且它是唯一的導(dǎo)出出口。在模塊中,還存在一個(gè)module對(duì)象,他代表模塊自身,exports是module對(duì)象的屬性。導(dǎo)出方式:

// math.jsexports.add = function () { };module.exports.add = function () { };

2.3 后端 es6的module

ES6模塊不是對(duì)象,而是通過(guò)export命令顯式指定輸出的代碼,輸入時(shí)也采用靜態(tài)命令的形式。

由于ES6模塊是編譯時(shí)加載,使得靜態(tài)分析成為可能。有了它,就能進(jìn)一步拓寬JavaScript的語(yǔ)法,比如引入宏(macro)和類(lèi)型檢驗(yàn)(type system)這些只能靠靜態(tài)分析實(shí)現(xiàn)的功能。

除了靜態(tài)加載帶來(lái)的各種好處,ES6模塊還有以下好處:

不再需要UMD模塊格式了,將來(lái)服務(wù)器和瀏覽器都會(huì)支持ES6模塊格式。目前,通過(guò)各種工具庫(kù),其實(shí)已經(jīng)做到了這一點(diǎn)。

將來(lái)瀏覽器的新API就能用模塊格式提供,不再必要做成全局變量或者navigator對(duì)象的屬性。

不再需要對(duì)象作為命名空間(比如Math對(duì)象),未來(lái)這些功能可以通過(guò)模塊提供。

瀏覽器使用ES6模塊的語(yǔ)法如下:

導(dǎo)出對(duì)象和變量:

var firstName = ’XXX’;var lastName = ’YYY’;export {firstName, lastName};Point.js// 導(dǎo)出類(lèi)對(duì)象export default class Point extends circle {}

引入module

import Point from 'Point';

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久久色| 欧美不卡视频| 亚洲激情另类| 9色国产精品| 视频一区二区三区中文字幕| 免费不卡在线视频| 一区二区国产精品| 日韩精品一区二区三区免费视频| 国产精品日韩| 亚洲精选91| 欧美日韩一区二区国产| 久久av日韩| 高清久久一区| 秋霞影视一区二区三区| 国产伊人精品| 久久福利影视| 日韩精品视频网站| 老鸭窝一区二区久久精品| 国产 日韩 欧美 综合 一区| 日韩精品麻豆| 美日韩精品视频| 欧美中文一区| yellow在线观看网址| 久久久久久久久99精品大| 欧美日韩精品一本二本三本 | 国产成人免费视频网站视频社区| 久久精品国产68国产精品亚洲| 久久久亚洲一区| 精品无人区麻豆乱码久久久 | 人在线成免费视频| 午夜精品福利影院| 色88888久久久久久影院| 国产精品xxx| 一区在线免费观看| 婷婷亚洲综合| 亚洲2区在线| 激情久久99| 好看的av在线不卡观看| 91亚洲精品在看在线观看高清| 国产一区调教| 国产一级久久| 欧美极品中文字幕| 蜜桃一区二区三区| 久久精品99久久久| 久久蜜桃精品| 日本成人在线视频网站| 中文字幕在线看片| 热久久免费视频| 精品国产成人| 欧洲亚洲一区二区三区| 亚洲资源在线| 日韩88av| 蜜桃一区二区三区在线观看| 国产精品xvideos88| 激情欧美日韩一区| 欧美亚洲三区| 激情欧美一区二区三区| 欧美精品中文| 最新国产拍偷乱拍精品| 久久99免费视频| 亚洲一区二区成人| 精品视频99| 一区二区电影| 久久久久久久久丰满| 日韩精品中文字幕吗一区二区| 伊人影院久久| 另类欧美日韩国产在线| 久久久免费人体| 国产免费久久| 国产欧美日韩精品一区二区免费 | 日韩欧美三级| 国产精品88久久久久久| 视频一区在线播放| 国产福利电影在线播放| 亚洲字幕久久| 久久久久免费av| 国产精品视频3p| 蜜桃传媒麻豆第一区在线观看| 三上亚洲一区二区| 日本aⅴ免费视频一区二区三区| 亚洲福利久久| 亚洲精品欧美| 91久久在线| 欧美一区二区三区激情视频| 久久视频国产| 日韩不卡一区二区三区| 麻豆精品新av中文字幕| 三级久久三级久久久| 日韩国产成人精品| 日韩视频二区| 日韩在线麻豆| 日韩精品a在线观看91| 亚洲另类av| 五月婷婷六月综合| 欧美日韩国产综合网| 欧美久久精品一级c片| 欧美1区免费| 视频一区视频二区中文字幕| 欧美日韩1区| 久久婷婷一区| 亚洲欧美专区| 伊人影院久久| 久久久久久久久丰满| 国产一区二区三区四区| 免费欧美日韩| 精品久久福利| 欧美亚洲三级| 亚洲色图国产| 久久久精品久久久久久96| 国产亚洲第一伦理第一区| 亚洲一级影院| 亚洲国产专区| 精品一区电影| 日韩激情综合| 午夜国产欧美理论在线播放| 精品国产午夜| 另类小说一区二区三区| 国产一区亚洲| 国产96在线亚洲| 日本欧美在线| 一级成人国产| 亚洲婷婷丁香| 亚洲免费观看| 久久要要av| 久久婷婷丁香| 欧美日韩激情| 国产亚洲一区二区手机在线观看| 国产极品久久久久久久久波多结野 | 伊人久久国产| 欧美黄页在线免费观看| 亚洲欧美日韩精品一区二区| 久久亚洲欧美| 热久久久久久久| 久久国内精品| 精品久久电影| 国产精品亚洲欧美日韩一区在线| 日韩专区一卡二卡| 亚洲一级二级| 亚洲一区二区三区免费在线观看 | 久久精品亚洲| 日韩av一级| 樱桃视频成人在线观看| а√天堂8资源中文在线| 日韩精品电影一区亚洲| 亚洲综合精品| 九九久久电影| 国产综合欧美| 亚洲少妇诱惑| 午夜日韩在线| 激情欧美一区二区三区| 亚洲精品.com| 婷婷国产精品| 极品裸体白嫩激情啪啪国产精品| 在线看片福利| 91av亚洲| 久久超级碰碰| 欧美日韩国产v| 亚洲日本网址| 亚洲精品国产嫩草在线观看 | 91欧美极品| 国产精品一区高清| 国产精品99一区二区三| 国产精品成人一区二区不卡| 日韩av免费大片| 欧美黄色网页| 视频一区视频二区中文字幕| 亚洲免费毛片| 日本不卡视频一二三区| 日韩av中文字幕一区二区| 日本va欧美va瓶| 福利一区二区免费视频| 午夜久久久久| 9久re热视频在线精品| 欧美日韩在线精品一区二区三区激情综合 | 国产精品一区亚洲| 91精品福利观看| 欧美日韩尤物久久| 免费av一区| 日韩精品a在线观看91| 日本午夜精品视频在线观看| 亚洲欧美日韩专区| 蜜臀久久99精品久久久画质超高清 | 亚洲夜间福利| 亚洲综合专区| 91在线成人| 狠狠操综合网| 亚洲精选久久| 免费一区二区三区在线视频| 麻豆视频在线观看免费网站黄 | 精品九九久久| 激情婷婷综合| 亚洲精品高潮| 精品视频网站| 久久av在线| 国产精品伦理久久久久久| 欧美69视频| 欧美一区成人| 美女一区网站| 日本伊人久久| 在线看片国产福利你懂的|