前端测试题: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、导入不存在的变量,程序会抛出异常