<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          ES6模塊功能:export和import的加載方式

          時間:?2017-11-06閱讀:?1223標簽:?模塊

          ES6之前已經出現了js模塊加載的方案,最主要的是CommonJS和AMD規范。commonjs主要應用于服務器,實現同步加載,如nodejs。AMD規范應用于瀏覽器,如requirejs,為異步加載。同時還有CMD規范,為同步加載方案如seaJS。

          ES6在語言規格的層面上,實現了模塊功能,而且實現得相當簡單,完全可以取代現有的CommonJS和AMD規范,成為瀏覽器和服務器通用的模塊解決方案。

          ES6模塊主要有兩個功能:export和import

          export用于對外輸出本模塊(一個文件可以理解為一個模塊)變量的接口

          import用于在一個模塊中加載另一個含有export接口的模塊。

          也就是說使用export命令定義了模塊的對外接口以后,其他JS文件就可以通過import命令加載這個模塊(文件)。如下圖(假設a和b文件在同一目錄下)


          // a.js
          var sex="boy";
          var echo=function(value){
            console.log(value)
          }
          export {sex,echo}  
          //通過向大括號中添加sex,echo變量并且export輸出,就可以將對應變量值以sex、echo變量標識符形式暴露給其他文件而被讀取到
          //不能寫成export sex這樣的方式,如果這樣就相當于export "boy",外部文件就獲取不到該文件的內部變量sex的值,因為沒有對外輸出變量接口,只是輸出的字符串。
          // b.js
          //通過import獲取a.js文件的內部變量,{}括號內的變量來自于a.js文件export出的變量標識符。
          import {sex,echo} from "./a.js" 
          console.log(sex)   // boy
          echo(sex) // boy


          a.js文件也可以按如下export語法寫,但不如上邊直觀,不太推薦。

          // a.js
          export var sex="boy";
          export var echo=function(value){
            console.log(value)
          }
          //因為function echo(){}等價于 var echo=function(){}所以也可以寫成
          export function echo(value){
             console.log(value)
          }

          以上是export與module的基本用法,再進行拓展學習

          前面的例子可以看出,b.js使用import命令的時候,用戶需要知道a.js所暴露出的變量標識符,否則無法加載。可以使用export default命令,為模塊指定默認輸出,這樣就不需要知道所要加載模塊的變量名。

          //a.js
          var sex="boy";
          export default sex(sex不能加大括號)
          //原本直接export sex外部是無法識別的,加上default就可以了.但是一個文件內最多只能有一個export default。
          //其實此處相當于為sex變量值"boy"起了一個系統默認的變量名default,自然default只能有一個值,所以一個文件內不能有多個export default。

          // b.js
          //本質上,a.js文件的export default輸出一個叫做default的變量,然后系統允許你為它取任意名字。所以可以為import的模塊起任何變量名,且不需要用大括號包含
          import any from "./a.js"
          import any12 from "./a.js" 
          console.log(any,any12)   // boy,boy


           參考:http://es6.ruanyifeng.com/#docs/module

          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/54

          與 JavaScript 模塊相關的所有知識點

          JavaScript 語言最初是為簡單的表單操作而發明的,沒有諸如模塊或命名空間之類的內置功能。多年以來發明了大量的術語、模式、庫、語法和工具來模塊化 JavaScript。本文討論了 JavaScript 中的所有主流模塊系統、格式、庫和工具

          編寫高質量JavaScript模塊的4個最佳實踐

          使用ES2015模塊,您可以將應用程序代碼分成可重用的、封裝的、專注于單一任務的模塊。這很好,但是如何構造模塊呢?一個模塊應該有多少個函數和類?這篇文章介紹了有關如何更好地組織JavaScript模塊的4種最佳實踐。

          nodejs核心模塊有哪些?

          核心模塊是 Node.js的心臟,它由一些精簡而高效的庫組成,為 Node.js 提供了基本的API。下面本篇文章就來給大家介紹一部分最常用的nodejs核心模塊,希望對大家有所幫助。

          Nodejs數據加密與crypto模塊

          nodejs 中的 crypto 模塊提供了各種各樣加密算法的 API。這篇文章記錄了常用加密算法的種類、特點、用途和代碼實現。其中涉及算法較多,應用面較廣,每類算法都有自己適用的場景。為了使行文流暢,列出了本文記錄的幾類常用算法

          利用Proxy,如何優雅實現JSBridge模塊化封裝

          最近公司在做一個項目,通過把我們自己的Webview植入第三方APP,然后我們的業務全部通過H5實現。至于為什么不直接用第三方APP WebView,主要是身處金融行業,需要做一些風控相關功能

          Node.js中的fs模塊的使用

          JavaScript 的是沒有操作文件的能力,但是 Node 是可以做到的,Node 提供了操作文件系統模塊,是 Node 中使用非常重要和高頻的模塊,是絕對要掌握的一個模塊系統。

          JavaScript中的模塊導入有一個缺點

          在使用ES2015模塊導入功能的時候你有什么覺得不爽的地方嗎?反正我有!下面就來說說。假設你編寫了一個簡單的JavaScript模塊:

          NodeJS模塊os

          nodejs 提供了os.platform()和os.type(),可以用來識別操作系統平臺。推薦使用: os.platform();平均負載是指:單位時間內,系統處于可運行狀態和不可中斷狀態的平均進程數。

          NodeJS模塊Buffer

          Buffer 作為 nodejs 中重要的概念和功能,為開發者提供了操作二進制的能力。本文記錄了幾個問題,來加深對 Buffer 的理解和使用:

          Node.js中Domain 模塊

          Node.js Domain(域) 簡化異步代碼的異常處理,可以捕捉處理try catch無法捕捉的異常。Domain 模塊可分為隱式綁定和顯式綁定:

          內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權或違規,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全運營推廣

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网