前端測試題:module模組中的注意事項,下列說法錯誤的?

考核內容:module模組的使用方式

題發散度: ★★

試題難度: ★

解題思路:

關於ES6的module模組,詳見以下鏈接

前端測試題:關於ES6的module模組,下列說法錯誤的是?

import命令輸入的變數都是只讀的,因為它的本質是輸入介面。也就是說,不允許在載入模組的腳本裡面,改寫介面。

import {a} from './xxx.js'  a = {}; // Syntax Error : 'a' is read-only;

上面程式碼中,腳本載入了變數a,對其重新賦值就會報錯,因為a是一個只讀的介面。但是,如果a是一個對象,改寫a的屬性是允許的。

import {a} from './xxx.js'  a.foo = 'es6'; // 合法操作

上面程式碼中,a的屬性可以成功改寫,並且其他模組也可以讀到改寫後的值。不過,這種寫法很難查錯,建議凡是輸入的變數,都當作完全只讀,不要輕易改變它的屬性。

導入不存在的變數,程式不會拋出異常,只是值為undefined。

參考程式碼:

  • m1.js
  • egimport.js

答案:

C、導入不存在的變數,程式會拋出異常

Tags: