import、require、export、module.exports详解

2 篇文章 0 订阅

在这里插入图片描述


前言

import ,export default,export遵循 es6 制定的规范
require, module.exports,exports遵循commonjs 制定规范

注意事项

  • module.exports / exports: 只有 node 支持的导出
  • require: node 支持的引入【项目能直接使用是因为经过wbp的处理】
  • export / import : 只有es6 支持的导出引入

什么是 ES6 规范和CommonJS规范

ES6 规范(ECMAScript 6.0)

  • 背景了解
  • JavaScript 的创造者网景公司将 JS 提交给国际化标准组织 ECMA),希望这种语言能够成为国际标准,随后 ECMA
    发布了规定浏览器脚本语言的标准,即 ECMAScript。这也有利于这门语言的开放和中立。
  • 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案
  • 说白了实际就是js的规范,遵循游览器运行即可

export 和 export default区别

  • export与export default均可用于导出常量、函数、文件、模块等
  • 在一个文件或模块中,export、import可以有多个,export default仅有一个
  • 通过export方式导出,在导入时要加{ },export default则不需要
  • export能直接导出变量表达式,export default不行。

CommonJS规范

  • Node里面的模块系统遵循的是CommonJS规范;
  • CommonJS定义的模块分为: 模块标识(module)、模块定义(exports) 、模块引用(require)

结束语

大大没贴案例,为啥呢,因为懒哈哈,主要帮助自己理解,嘿嘿;
如果需要的话,留言后期更新写文章,感谢大家的支持~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`import` 和 `export` 是现代 JavaScript(ES6 及以上版本)中的模块化引入和导出机制,而 `require` 和 `module.exports` 是 Node.js 中传统的模块加载方式。两者的主要区别在于: 1. **作用域和模块上下文**: - `import` 语句使得你可以在模块内部导入其他模块的代码块,创建一个封闭的作用域。这样,你可以避免全局污染,并且导入的内容只在当前模块的范围内可见。 - `require` 需要在 Node.js 中运行,它在全局作用域下查找并加载模块,这可能导致无意中的变量共享。 2. **语法和用法**: - `import` 支持静态导入,意味着编译时可以确定导入内容,提高了性能,同时还可以使用解构赋值等更灵活的导入方式。 - `module.exports` 用于导出一个模块的内容,它通常是一个对象,当你使用 `require` 时会返回整个导出对象。 3. **动态导入**: - `import()` 是动态导入,支持在运行时决定要加载的模块,这对于异步加载大文件或模块树非常有用。 - `require()` 没有内置的动态导入功能,需要借助第三方库(如 `dynamic-import-node`)实现。 4. **模块系统不同**: - ES6 的模块系统是 CommonJS 的超集,Node.js 原生支持 CommonJS。 - ES6 的模块系统更现代,推崇更简洁、面向对象的编程风格。 因此,`import` 和 `export` 提供了更符合现代 JavaScript 规范、易于理解和维护的模块化编程方式,特别是在开发 Web 应用程序时,它们是标准的写法。而在 Node.js 中,尽管 `import` 和 `export` 也可以被模拟使用,但建议使用 `require` 和 `module.exports` 或者 `export default` 的组合,以保持向后兼容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值