js es6 export,import,export default的用法和区别

js export import 编程技术
发布日期 2023-07-17 更新日期 2023-07-17 阅读次数 125 文章字数 1.1k

ES6模块主要有两个功能:export和import

export:用于对外输出本模块(一个文件可以理解为一个模块)变量的接口

import:用于在一个模块中加载另一个含有export接口的模块。

在Javascript ES6中,export与export default均可用于导出常量、函数、文件、模块等,你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用,但在一个文件或模块中,export、import可以有多个,export default仅有一个

import导入时,是“按需导入”,以{名称1, 名称2}导入,如果是export default导出时可以不用{}对象形式导入,而是直接import 名称

// a.js
var sex="boy";
var echo=function(value){
  console.log(value)
}

export {sex,echo} 

//通过向大括号中添加sex,echo变量并且export输出,就可以将对应变量值以sex、echo变量标识符形式暴露给其他文件而被读取到

//不能写成export sex这样的方式,如果这样就相当于export "boy",外部文件就获取不到该文件的内部变量sex的值,因为没有对外输出变量接口,只是输出的字符串。



// b.js

通过import获取a.js文件的内部变量,{}括号内的变量来自于a.js文件export出的变量标识符。

import {sex,echo} from "./a.js"

console.log(sex) // boy

echo(sex) // boy

export例子:

//demo1.js
export const str = 'hello world'

export function f(a){
    return a+1
}
//demo2.js
import { str, f } from 'demo1' //也可以分开写两次,导入的时候带花括号

export default例子:

//demo1.js
export default const str = 'hello world'
//demo2.js
import str from 'demo1' //导入的时候没有花括号

注意事项

注意:

1、export default 向外暴露的成员,可以使用任意变量来接收

2、在一个模块中,export default 只允许向外暴露一次

3、在一个模块中,可以同时使用export default 和export 向外暴露成员

4、使用export向外暴露的成员,只能使用{  }的形式来接收,这种形式,叫做【按需导出】

5、export可以向外暴露多个成员,同时,如果某些成员,在import导入时,不需要,可以不在{ }中定义

6、使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收

7、使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名

文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-457.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

js export import

发表评论

相关推荐
朱丰华   |   1年前   |   页面 · 监听

iframe子父页面信息传递与监听

375    评论    点赞
朱丰华   |   1年前   |   < · iframe

让iframe嵌入的视频自适应 (100%宽度)?

122    评论    点赞
朱丰华   |   1年前   |   js · 重复

js如何避免重复监听addEventListener事件?

124    评论    点赞
朱丰华   |   1年前   |   html · id · <

html同一个页面有两个相同id ,如何用id选择器选中

109    评论    点赞
朱丰华   |   1年前   |   php

windows下编写、编译php扩展

158    评论    点赞
朱丰华   |   1年前   |   js · vue · 监听

js vue监听,深度监听

114    评论    点赞
朱丰华   |   1年前   |   vue · model

vue语法v-model原理与实现

122    评论    点赞
朱丰华   |   1年前   |   javascript · js · obfuscator · 混淆

javascript-obfuscator混淆js文件

52    评论    点赞
朱丰华   |   1年前   |   js · vue · npm · 安装

npm快速上手

100    评论    点赞
朱丰华   |   1年前   |   js · 模块 · nodejs

nodejs引入自定义模块

48    评论    点赞
朱丰华   |   1年前   |   nvm · git · 安装

entos7安装、使用nvm

75    评论    点赞
朱丰华   |   1年前   |   js · 滚动 · html

原生js实现顶部进度条效果

59    评论    点赞
朱丰华   |   1年前   |   python · linux · www

linux给www用户【非root】安装python3

186    评论    点赞
朱丰华   |   1年前   |   linux · 变量 · 环境

linux查看环境变量、设置环境变量

94    评论    点赞
朱丰华   |   1年前   |   js · php · 字符 · 字符串

php json_encode对字符串转义用法

135    评论    点赞
朱丰华   |   1年前   |   api

api接口的参数"原子"设计

79    评论    点赞
朱丰华   |   1年前   |   javascript · 属性 · 对象

javascript 判断对象是否拥有某个属性,删除某个属性

163    评论    点赞
朱丰华   |   1年前   |   smarty · php

smarty中调用函数

107    评论    点赞
朱丰华   |   1年前   |   js · 浏览器

js字符串的replaceAll浏览器不兼容问题

96    评论    点赞
朱丰华   |   1年前   |   gif · 加密 · 可以 · web · 简单 · 方法 · 图片 · js · 直接 · 通过

web端 gif 最简单的加密方法

162    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞