前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端测试题:关于ES6的module模块,下列说法错误的是?

前端测试题:关于ES6的module模块,下列说法错误的是?

作者头像
舒克
发布2020-04-07 15:24:47
1.8K0
发布2020-04-07 15:24:47
举报

考核内容: module模块的使用和实现

题发散度: ★★★

试题难度: ★★★

解题思路:

在 ES6 之前,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScript 任何这方面的支持都没有,这对开发大型的、复杂的项目形成了巨大障碍。

ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。

一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。下面是一个 JS 文件,里面使用export命令输出变量。

// ./file/m1.js

代码语言:javascript
复制
let firstName = 'ke';
let lastName = 'shuke';
let year = 2020;
let nickname="舒克"
export { firstName, lastName, year };

// ES6模块 main.js

代码语言:javascript
复制
import { firstName, lastName, year } from './file/m1';

上面代码的实质是从m1模块加载 3 个方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高。当然,这也导致了没法引用 ES6 模块本身,因为它不是对象。

浏览器实现ES6 module必须,使用firefox54以上和chrome60以上,并且chrome仍然有问题,跨域会报错,得放在服务器下测试.

ES6 的模块特性(module) 开始在浏览器端实现

浏览器

备注

可以看到module模块在浏览器支持方面并不是很好;

参考代码:

//node环境下测试:main.js

//m1.js

答案

代码语言:javascript
复制
D、目前大部分主流浏览器都支持module模块
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 迈向前端工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档