美文网首页
import 和 require 比较

import 和 require 比较

作者: 一座被占用 | 来源:发表于2018-05-05 15:01 被阅读0次

遵循的规则

    require/exports是JavaScript社区中的开发者自己草拟的规则,遵循AMD,统治了所有ES6之前的所有模块化编程

    import/export则是名门正派,是ES6的一个语法标准。遵循CommonJs

    补充:webpack一开始的目的就是打包CommonJs模块(CommonJs是Node.js的规范)

                babel会把你编写的import/export最终编译成require/exports来执行

调用时间

    require是运行时调用,所以require理论上可以运用在代码的任何地方。在使用时,完全可以忽略模块化这个概念来使用require。仅仅把它当做一个node内置的全局函数,它的参数可以是表达式

    import是编译时调用,所以必须放在文件开头

本质:

    require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结构赋值给某个变量

    import是解析过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require

    ES6 Module(import/export)中倒入模块的属性或者方法是强绑定的,包括基础类型。而CommonJs(require/exports)则是普通的值传递(基础类型)或者引用传递(引用类型)

网上例子

在编写上面的过程中发现,使用import方法调用,在node执行的过程中会报错。

因为当前的node版本不支持import,所以还是需要先使用babel将import编译成require,所以这里就不好进行比较。

如果引用的是数组

修改exprt中数组的值

看看下面的运行结果

那么,这里就对require得出一个结论:对基础类型是值拷贝、对引用类型的值是浅拷贝

default关键字:

    default 是ES6 Module 所独有的关键字,export default fs 输出默认的接口对象,import fs from 'fs' 可直接导入这个对象。说白了,它其实就是别名的语法糖(别名是通过 as 关键字来取的)

到底是使用require还是import?

    这个问题就目前而言,没有办法回答。以为目前所有的引擎都还没有实现import,import语法会被转码为require,这也是为什么在模块导出时使用module.exprts,在引入模块时使用import仍然起效。本质上来说,import会被转码为require去执行。但是从长远角度来看,还是使用import,在未来浏览器引擎支持import的时候,只需要做出很少的改动

参考地址:

地址一(推荐)地址二

相关文章

  • import 和 require 比较

    遵循的规则 require/exports是JavaScript社区中的开发者自己草拟的规则,遵循AMD,统治了所...

  • require,import ,export default,m

    module.exports和exports区别 import和require的区别 import和require...

  • 2、require 和 import 的区别?

    【转载出处】 require 和 import 的区别? 谈谈import和require的区别 1⃣️、遵循的规...

  • require和import区别

    使用形式不一样 import 还有一个重要的区别import是解析时候加载的,require是运行时加载,requ...

  • import和require区别

    在学习过程发现项目代码中存在两种引入方式,便各方查了两种的区别(一下内容为自我学习笔记,如有不当还请指教): 1、...

  • import 和 require区别

    ES6之前出现了JS模块加载的法案,最主要是CommonJS和AMD规范。CommonJS前者主要应用于服务器,实...

  • js require和import

    Browsersify、Webpack 一开始的目的就是打包 CommonJS 模块。 CommonJS 作为 N...

  • require和import区别

    遵循的模块化规范不一样 模块化规范:即为 JavaScript 提供一种模块编写、模块依赖和模块运行的方案。谁让最...

  • import 和 require区别

    import和require分别是不同模块化规范下引入模块的语句。 1.时间 年份出处require/exprot...

  • require和import区别

    node编程中最重要的思想就是模块化,import和require都是被模块化所使用。 遵循规范–require ...

网友评论

      本文标题:import 和 require 比较

      本文链接:https://www.haomeiwen.com/subject/kalblftx.html