溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript使用export和import報錯怎么解決

發(fā)布時間:2022-07-08 09:28:01 來源:億速云 閱讀:2148 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下JavaScript使用export和import報錯怎么解決的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

報錯:Uncaught SyntaxError: Cannot use import statement outside a module

JavaScript使用export和import報錯怎么解決

意思是說無法在module以外使用import,在網(wǎng)上進行查閱之后才了解到,這是由于script標簽默認是使用JavaScript語言,使用ES6的語法會發(fā)生解析錯誤,需要在script標簽中加入type=“module”,具體如下:

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

這樣就不會報錯了。

報錯:Uncaught SyntaxError: The requested module &lsquo;&hellip;/js/ui.js&rsquo; does not provide an export named &lsquo;default&rsquo;

在解決上面的第一個報錯之后,控制臺又拋出了第二個錯誤:

JavaScript使用export和import報錯怎么解決

是說我的目標JS文件中沒有default導出,而我的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};

按理來說這樣寫是沒有問題的,export default和export只是暴露目標數(shù)有區(qū)別,不應該有語法報錯,所以我想可能是引入時出現(xiàn)了問題,于是我將

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

加了一個大括號{},修改為了

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

發(fā)現(xiàn)果然控制臺沒有報錯,并出現(xiàn)了結(jié)果

JavaScript使用export和import報錯怎么解決

這個問題我認為其原因是export語法可以向外暴露多個目標,所以在引入時需要通過“{}”以對象經(jīng)行引入,export default只能向外暴露一個,所以可以不用寫{}。
然而事實是我想錯了。

在改為export default后,才發(fā)現(xiàn)export default在引入時,不能加{},否則會報錯。

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>

此時控制臺會報錯

JavaScript使用export和import報錯怎么解決

同理此時只要去掉“{}”,就不會報錯了,并能正確打印上面的結(jié)果。

以上就是“JavaScript使用export和import報錯怎么解決”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI