CommonJS实现了Javascript的模块化规范,规范了模块的特性和各模块之间的相互依赖性,使得代码可以更好的编写和维护,同时提高了代码的复用性。定义每个文件都是一个模块(module变量代表当前模块)并有自己的作用域,而每个文件里面定义的变量、函数、类,都是私有的,对于其他模块是不可见。模块的exports属性是对外的接口,只有通过 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 exports导出的属性才能被加载识别。Node就是基于CommonJs规范实现的,因为CommonJS规范加载模块是同步的,而服务器中的Node模块都直接存储在服务器本地硬盘中的,加载起来自然比较快,可以说node项目是CommonJs规范目前的最好实践应用。

[](()ECMAScript 6 (简称ES6)

ECMAScript是(European Computer Manufacturers Association Script)的缩写,它是由ECMA国际标准化定制的一项JavaScript脚本语言的标准化规范。ECMAScript 6 是ECMA在2015年发布的JavaScript 的规范标准,解决 ES5 的很多先天不足并引入了模块化思想。ES6模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系以及输入和输出的变量。

[](()import

import是ES6中的语法标准也是用来加载模块文件的,import函数可以读取并执行一个JavaScript文件,然后返回该模块的export命令指定输出的代码。export与export default均可用于导出常量、函数、文件、模块,export可以有多个,export default只能有一个。

[](()require与import的区别

1,require是CommonJS规范的模块化语法,import是ECMAScript 6规范的模块化语法;

2,require是运行时加载,import是编译时加载;

3,require可以写在代码的任意位置,import只能写在文件的最顶端且不可在条件语句或函数作用域中使用;

4,require通过module.exports导出的值就不能再变化,import通过export导出的值可以改变;

5;require通过module.exports导出的是exports对象,import通过export导出是指定输出的代码;

6,require运行时才引入模块的属性所以性能相对较低,import编译时引入模块的属性所所以性能稍高。

require与import的区别和使用(CommonJS规范和es6规范)相关推荐

  1. web前端技术分享:详解模块化require 和 import的区别

    在前端开发中,我们可以使用很多模块化的库来帮助我们更好的实现效果,有一些库的功能类似很多同学就不知道该如何选择,比如require和import,今天小千就给大家介绍一下两者的区别. 一.区别 1.r ...

  2. require与import的区别和使用

    .require与import的区别和使用(CommonJS规范和es6规范) 1.import是ES6中的语法标准也是用来加载模块文件的,import函数可以读取并执行一个JavaScript文件, ...

  3. require和import的区别

    ​​ require和import的区别 require和import的区别 - wenxuehai - 博客园 目录 1.require 和 import 的区别 2.require() | exp ...

  4. ES Module 和 Commonjs | require和import的区别

    1. 语法1.1 ES Module导出:export / export default 导入: import * from 'module'1.2 Commonjs导出:module.exports ...

  5. require和import的区别?

    1.``require,exports和module.exports属于commonjs规范,import,export和exports default属于es6规范. 2.``require支持动态 ...

  6. 里面怎么使用import引用_谈谈模块化的 require 和 import

    一.区别 require是commonjs的规范,在node中实现的api,import是es的语法,由编译器处理.所以import可以做模块依赖的静态分析,配合webpack.rollup等可以做t ...

  7. oss 部署前端项目报错 Cannot find module ‘@/views/.....‘(require和import区别)

    使用框架:项目使用的是若以框架前后端分离. 我们把项目下载下来后,可以看到若依框架里的这样一段代码: export const loadView = (view) => {if (process ...

  8. 前端模块化require和import

    模块化就是将代码分割成不同的模块,便于复用和管理.按需加载 像内置fs模块,.moment 模块, 这些模块不是我们写的, 都是直接拿过来使用, 那么我们能不能自己写一个模块?答案当然是可以的! 一. ...

  9. CommonJS,AMD,CMD,ES6,require 和 import 详解

    CommonJS,AMD,CMD,ES6 commonJS用同步的方式加载模块.在服务端,模块文件都存在本地磁盘,读取非常快,所以这样做不会有问题.但是在浏览器端,限于网络原因,更合理的方案是使用异步 ...

  10. es6 混合commjs_详谈commonjs模块与es6模块的区别

    到目前为止,已经实习了3个月的时间了.最近在面试,在面试题里面有题目涉及到模块循环加载的知识.趁着这个机会,将commonjs模块与es6模块之间一些重要的的区别做个总结.语法上有什么区别就不具体说了 ...

最新文章

  1. 安卓 通过intent调用系统文件管理器打开指定路径目录
  2. python练手_Python数据分析练手项目
  3. JS截取字符串substr 和 substring方法的区别
  4. @Scheduled不执行的原因
  5. MySQL中的事务隔离级别
  6. oracle中自定义异常编号,Oracle自定义异常的使用
  7. SpringMVC+uploadify3.2.1版实现附件上传功能(直接可以使用)
  8. requirejs教程(一):基本用法
  9. LOL自制皮肤1-解析WAD文件的一些总结
  10. 交互式绘图软件源码开发,简单好用功能强大的绘图工具
  11. 计算机对比度亮度调整,显示器亮度对比度调多少眼睛舒服_亮度和对比度正确调整方法...
  12. 计算机检索系统功能,文学多功能计算机自动检索系统研究
  13. '命名空间xxx中不存在类型或命名空间名xx(是否缺少程序集引用)'-异常报错的原因
  14. 酷派COOL20s什么时候发布 酷派COOL20s配置如何
  15. Golang处理excel用流式写入,追加行数据
  16. 氢os android8,一加8T或预装氢OS11系统,基于Android 11定制
  17. 推荐一款截图神器——FSCapture
  18. Python JS逆向实战项目:某咕视频逆向分析 攻破~~
  19. 开发视频直播APP需要了解的技术原理和技术细节
  20. TCU-335xD直流充电桩计费控制单元 充电桩设计优良参考

热门文章

  1. 计算机重装系统后黑屏,电脑重装系统后黑屏怎么办
  2. java自动发送qq_如何定时批量发送qq消息就是帮助我们自动的发送qq消息
  3. mysql mtq_mysql高级复习 - osc_r3mtqivi的个人空间 - OSCHINA - 中文开源技术交流社区
  4. 【计算机网络】思科实验(3):使用三层交换机实现跨VLAN间的通信
  5. Git 修改历史 commit 提交信息
  6. mtk编译android,[Android6.0][MTK6737] MTK 编译环境搭建
  7. 1:MTK 6737 Flash配置
  8. 【DX12】DirectX Math库 Vector和Matrix类型 XMVECTOR、XMMATRIX
  9. 群晖docker创建运行spring cloud微服务
  10. Flex ikev2