成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript使用export和import的兩個(gè)報(bào)錯(cuò)如何解決

3403771864 / 2066人閱讀

  前言

  本篇文章主要為大家敘述關(guān)于JavaScript中的export和import,這兩個(gè)常見(jiàn)的報(bào)錯(cuò)。

  報(bào)錯(cuò):Uncaught SyntaxError: Cannot use import statement outside a module

2022070716515454.png

  上面標(biāo)書(shū)的是無(wú)法在module以外使用import,在網(wǎng)上進(jìn)行查閱之后才了解到,這是由于script標(biāo)簽?zāi)J(rèn)是使用JavaScript語(yǔ)言,使用ES6的語(yǔ)法會(huì)發(fā)生解析錯(cuò)誤,需要在script標(biāo)簽中加入type=“module”,具體如下:

  <script type="module">
  import Rotation from '../js/ui.js'
  Rotation();
  </script>

  仔細(xì)看,這樣就不會(huì)出現(xiàn)報(bào)錯(cuò)吧。

  報(bào)錯(cuò):Uncaught SyntaxError: The requested module ‘…/js/ui.js’ does not provide an export named ‘default’

  第一錯(cuò)誤解決了,但隨之而來(lái)的是控制臺(tái)又拋出了第二個(gè)錯(cuò)誤:

2.png

  現(xiàn)在我來(lái)說(shuō)說(shuō)我的,目標(biāo)JS文件中沒(méi)有default導(dǎo)出,因此,我的JS文件就是這樣:

  function Rotation() {
  let lbt = document.querySelectorAll('.zh-lbt');
  for (let i = 0; i < lbt.length; i++) {
  let lbtNum = Number(lbt[i].getAttribute('num'))||1
  console.log(lbtNum);
  }
  }
  export {Rotation};

  常規(guī)來(lái)說(shuō)沒(méi)啥問(wèn)題,export default和export只是暴露目標(biāo)數(shù)有區(qū)別,因此不會(huì)是語(yǔ)法報(bào)錯(cuò),是不是我的引入出現(xiàn)問(wèn)題,隨之做出下來(lái)改變

  <script type="module">
  import Rotation from '../js/ui.js'
  Rotation();
  </script>

  加了一個(gè)大括號(hào){},修改為了

  <script type="module">
  import {Rotation} from '../js/ui.js'
  Rotation();
  </script>

  發(fā)現(xiàn)果然控制臺(tái)沒(méi)有報(bào)錯(cuò),并出現(xiàn)了結(jié)果

3.png

  這個(gè)問(wèn)題我認(rèn)為其原因是export語(yǔ)法可以向外暴露多個(gè)目標(biāo),所以在引入時(shí)需要通過(guò)“{}”以對(duì)象經(jīng)行引入,export default只能向外暴露一個(gè),所以可以不用寫(xiě){}。

  可卻不是。

  在改為export default后,才發(fā)現(xiàn)export default在引入時(shí),不能加{},否則會(huì)報(bào)錯(cuò)。

  export default{
  Rotation:function () {
  let lbt = document.querySelectorAll('.zh-lbt');
  for (let i = 0; i < lbt.length; i++) {
  let lbtNum = Number(lbt[i].getAttribute('num'))||1
  console.log(lbtNum);
  }
  }
  }
  <script type="module">
  import {Rotation} from '../js/ui.js'
  Rotation.Rotation();
  </script>

  此時(shí)控制臺(tái)會(huì)報(bào)錯(cuò)

4.png

  同理此時(shí)只要去掉“{}”,就不會(huì)報(bào)錯(cuò)了,并能正確打印上面的結(jié)果。

      歡迎大家關(guān)注更多精彩內(nèi)容!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130288.html

相關(guān)文章

  • ES6新特性總結(jié) 一

    摘要:一旦聲明,常量的值不能被改變。頂層對(duì)象的屬性頂層對(duì)象,瀏覽器中指的是對(duì)象,在中指的是對(duì)象。中新增了兩個(gè)命令和,命令用于暴露出模塊對(duì)外的接口,而則用于輸入某一模塊。 1.聲明變量的關(guān)鍵字:const 和 let JavaScript ES6中引入了另外兩個(gè)聲明變量的關(guān)鍵字:const和let。在ES6中,我們將很少能看到var了。 const關(guān)鍵字 const聲明一個(gè)只讀的常量。一旦聲明...

    MarvinZhang 評(píng)論0 收藏0
  • Javascript ES6學(xué)習(xí)

    摘要:以下簡(jiǎn)稱是語(yǔ)言的下一代標(biāo)準(zhǔn)。因?yàn)楫?dāng)前版本的是在年發(fā)布的,所以又稱。命令用于規(guī)定模塊的對(duì)外接口,命令用于輸入其他模塊提供的功能。需要特別注意的是,命令規(guī)定的是對(duì)外的接口,必須與模塊內(nèi)部的變量建立一一對(duì)應(yīng)關(guān)系。 ECMAScript 6(以下簡(jiǎn)稱ES6)是JavaScript語(yǔ)言的下一代標(biāo)準(zhǔn)。因?yàn)楫?dāng)前版本的ES6是在2015年發(fā)布的,所以又稱ECMAScript 2015。 最常用的ES6...

    gclove 評(píng)論0 收藏0
  • 很全很全JavaScript模塊講解

    摘要:該模塊實(shí)現(xiàn)方案主要包含與這兩個(gè)關(guān)鍵字,其允許某個(gè)模塊對(duì)外暴露部分接口并且由其他模塊導(dǎo)入使用。由于在服務(wù)端的流行,的模塊形式被不正確地稱為。以上所描述的模塊載入機(jī)制均定義在中。 最近一直在搞基礎(chǔ)的東西,弄了一個(gè)持續(xù)更新的github筆記,可以去看看,誠(chéng)意之作(本來(lái)就是寫(xiě)給自己看的……)鏈接地址:Front-End-Basics 此篇文章的地址:JavaScript的模塊 基礎(chǔ)筆記...

    lufficc 評(píng)論0 收藏0
  • 2020年如何寫(xiě)一個(gè)現(xiàn)代JavaScript庫(kù)

    摘要:我寫(xiě)過(guò)一些開(kāi)源項(xiàng)目,在開(kāi)源方面有一些經(jīng)驗(yàn),最近開(kāi)到了阮老師的微博,深有感觸,現(xiàn)在一個(gè)開(kāi)源項(xiàng)目涉及的東西確實(shí)挺多的,特別是對(duì)于新手來(lái)說(shuō)非常不友好最近我寫(xiě)了一個(gè),旨在從多方面快速幫大家搭建一個(gè)標(biāo)準(zhǔn)的庫(kù),本文將已為例,介紹寫(xiě)一個(gè)開(kāi)源庫(kù)的知識(shí) 我寫(xiě)過(guò)一些開(kāi)源項(xiàng)目,在開(kāi)源方面有一些經(jīng)驗(yàn),最近開(kāi)到了阮老師的微博,深有感觸,現(xiàn)在一個(gè)開(kāi)源項(xiàng)目涉及的東西確實(shí)挺多的,特別是對(duì)于新手來(lái)說(shuō)非常不友好 show...

    joyqi 評(píng)論0 收藏0
  • ES6之路之模塊詳解

    摘要:例如我們導(dǎo)入模塊,可以這么導(dǎo)入桃翁歡迎關(guān)注公眾號(hào)前端桃園報(bào)錯(cuò)不能定義相同名字變量報(bào)錯(cuò),不能重新賦值小豬可以看到導(dǎo)入綁定這里不理解綁定,文章后面會(huì)解釋時(shí),形式類似于對(duì)象解構(gòu),但實(shí)際上并無(wú)關(guān)聯(lián)。 歡迎訪問(wèn)個(gè)人站點(diǎn) 簡(jiǎn)介 何為模塊 一個(gè)模塊只不過(guò)是一個(gè)寫(xiě)在文件中的 JavaScript 代碼塊。 模塊中的函數(shù)或變量不可用,除非模塊文件導(dǎo)出它們。 簡(jiǎn)單地說(shuō),這些模塊可以幫助你在你的模塊中編寫(xiě)...

    huashiou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<