Node.js ES6 JavaScript ESM模块语法导出和导入

本文详细介绍了ESM(ESModule)的使用方法,包括通过修改扩展名、package.json配置、具名导出和导入、默认导出以及解决命名冲突等内容,旨在帮助开发者理解和熟练运用这种支持Node.js和浏览器环境的模块语法。
摘要由CSDN通过智能技术生成

ESM,即ES Module,在2015年的ES6版本中被推出,这种语法同时支持Nodejs和浏览器环境。

要使用ESM语法,有两种方式:

  • 将扩展名改为.mjs。
  • 在同目录下的package.json中,添加一行:“type” : “module”。

具名导出

要导出变量,使用export 关键字加上花括号,填入要导出的对象,用逗号隔开,例如:

// export.mjs
const a = 1;
const str = "hello";
const arr = [1,2,3];
const foo = ()=>console.log("hello,world");

export {a,str,arr,foo}

请注意,这里的花括号不是对象,这个语法也不是对象简写,只是语法规则规定将要导出的对象写在export {} 中而已。

具名导入

如果要导入,使用import关键字和花括号,填入需要导入的对象,用逗号隔开,例如:

// import.mjs
import {a,str,arr,fun} from "./export.js"
console.log(str)
console.log(arr)
foo()

如果需要导入所有对象,则可以使用如下语法。

// import.mjs
import * as vars from "./export.js"

console.log(vars.str)
console.log(vars.arr)
vars.foo()

有些时候从不同的文件导入同名变量,这时候就发生了命名冲突,可以使用as起个别名:

// import.mjs
import { data as data1 } from "./export1.js"
import { data as data2} from "./export2.js"

默认导出

使用具名导入时,需要查看源文件中导出了哪些对象,需要在import{} 中填入准确的变量名,虽然可以使用as重命名,但终归不是很方便。

为了解决这个问题,可以使用默认导出,使用export default 关键字加上花括号,例如:

// export.mjs
const a = 1;
const b = 2;
const str = "hello";
const arr = [1,2,3];
const foo = ()=>console.log("hello,world");

export default {a,b,str,arr,foo}

默认导入

在导入时,可以在本文件中使用一个自定义的名称,例如:

import  datas  from './export.js'

console.log(datas.a)
console.log(datas.arr)
datas.foo()

在实践中,具名导出导入、默认导出导入均有使用,应熟练掌握。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值