JavaScript ES2016 中 import 与 require 用法及区别详解
作者:小括号时间:2026-10-22 07:02:09浏览:535
本文详解JavaScript ES2016中import和require的用法与区别。import用于静态导入,需在文件顶层使用,支持编译时静态分析;require实现动态加载,属于CommonJS规范。通过示例展示默认导出、命名导出及动态引入的具体写法。
JavaScript ES2016 模块加载概述
本文介绍JavaScript (ES2016) 中 import 和 require 的用法及其区别,供参考。
首先创建一个简单的JS文件,假设文件名为 lib.js,其内容如下:
命名导出与静态导入示例
export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}
通过上述定义,可以在其他文件中引用 lib 中定义的属性和方法。引用方式主要有两种,即 import 和 require。
//方法一
import { square, diag } from 'lib';
console.log(square(11)); // 121
console.log(diag(4, 3));
//方法儿
import * as lib from 'lib';
square = lib.square;
此外,还可以设置默认导出,需在 lib.js 中定义 export default {}。default 后既可以接单个参数,也可以接数组。具体写法如下:
默认导出与动态加载对比
//------ module1.js ------
export default 123;
//------ module2.js ------
const D = 123;
export { D as default };
通常习惯使用第一种方式,随后通过 import 获取该数组或参数。需要注意的是,import 仅支持静态导入,必须在文件开头、最上层预先写好。而 require 则可以实现动态加载。
| 加载方式 | 规范 | 命令 | 特点 |
|---|---|---|---|
| 运行时加载 | CommonJS/AMD | require | 社区方案,提供了服务器/浏览器的模块加载方案。非语言层面的标准。只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。 |
| 编译时加载 | ESMAScript6+ | import | 语言规格层面支持模块功能。支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。 |
const incrementCounter = function ({dispatch,state}){
dispatch(‘INCREMENT‘)
}
export default {
incrementCounter
}
//require
let myAction = require(‘xxxxx‘);
myAction.default.incrementCounter()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
