require 与 import 的区别(转载)

答案:两者的加载方式不同、规范不同

 

第一、两者的加载方式不同,require 是在运行时加载,而 import 是在编译时加载

 

require('. /a')(); // a 模块是一个函数,立即执行 a 模块函数
var data = require('. /a'). data; // a 模块导出的是一个对象
var a = require('. /a')[0]; // a 模块导出的是一个数组 ======> 哪都行
import \$ from 'jquery';
import \* as _ from '_';
import {a, b, c} from './a';
import {default as alias, a as a_a, b, c} from './a'; ======>用在开头

第二、规范不同,require 是 CommonJS/AMD 规范,import 是 ESMAScript6+规范

 

第三、require 特点:社区方案,提供了服务器/浏览器的模块加载方案。非语言层面的标准。只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。

 

import 特点:语言规格层面支持模块功能。支持编译时静态分析,便于 JS 引入宏和类型检验。动态绑定。

 

本文分享自微信公众号 - 前端面试秘籍(web-interview)。

posted @ 2021-09-10 18:11  时间观测者  阅读(340)  评论(0编辑  收藏  举报