前端面试:import 和 require 区别

1、遵循的规范不同

require 是AMD规范引入方式

import 是es6的一个语法标准,兼容浏览器要转换成es5

 

2、调用时间

require是运行时调用,require是个函数所以require理论上可以运用在代码的任何地方

import是编译时调用,所以必须放在文件开头 且放在全局中引入

3、本质

require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require
 

4、所属语法规范不同

import(es6语法)

import在编译时确定导入
路径只能是字符串常量
import会被提升到文件最顶部
导入的变量是只读的

import导入的是值引用,而不是值拷贝
模块内部值发生变化,会对应影响到引用的地方
import导入与导出需要有一一映射关系,类似解构赋值。

require(CommandJS规范)

它相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……再把require的结果赋值给某个变量,相当于把require和module.exports进行平行空间的位置重叠。
require理论上可以运用在代码的任何地方,甚至不需要赋值给某个变量之后再使用。
require(’./a’)(); // a

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值