博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
require和import的区别
阅读量:5323 次
发布时间:2019-06-14

本文共 773 字,大约阅读时间需要 2 分钟。

  ES6标准: 模块以export指令导出接口,以import引入模块

  CommonJS规范: 使用require引入模块,使用module.exports导出接口

  现在还没有JavaScript引擎,可以原生支持ES6模块,在不久的未来应该可以支持。在开发中一般使用Babel。默认情况下,Babel转化import 和 export 声明为 CommonJS (require/module.exports) 。

  CommonJS允许你动态加载require模块。甚至不需要赋值给某个变量之后再使用,比如:

require('./a')(); // a模块是一个函数,立即执行a模块函数var data = require('./a').data; // a模块导出的是一个对象var a = require('./a')[0]; // a模块导出的是一个数组

  你在使用时,完全可以忽略模块化这个概念来使用require,仅仅把它当做一个node内置的全局函数,它的参数甚至可以是表达式:

require(process.cwd() + '/a');

  但是ES6 import的则不同,它必须放在文件开头。它不会将整个模块运行后赋值给某个变量,而是只选择import的接口进行编译,这样在性能上比require好很多。

  import 具有声明提升效果,会首先执行。所以最好不要混用importrequire。 import 是 ES6 标准,如果可能,首先使用 import, 如果不行,就用require

  因为ES6 模块是标准,所以现在还是推荐使用import,避免未来不必要的更改。

参考网站:  

转载于:https://www.cnblogs.com/dadouF4/p/10938411.html

你可能感兴趣的文章
zoj 1232 Adventure of Super Mario
查看>>
Oracle 序列的应用
查看>>
1201 网页基础--JavaScript(DOM)
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
uva 10004 - Bicoloring
查看>>
oracle job
查看>>
Redis常用命令
查看>>
用easy_install時出現unknown url type: https问题
查看>>
C++中的异常处理(二)
查看>>
C语言 · Sine之舞
查看>>
C语言 · 简单加法
查看>>
好用的在线Markdown编辑器
查看>>
wtforms
查看>>
EFCode First 导航属性
查看>>
嵌入式Linux开发
查看>>
Swift语法初见
查看>>
XML学习笔记(二)-- DTD格式规范
查看>>
前端基础之html
查看>>
I - Agri-Net - poj 1258
查看>>
git 的回退
查看>>