export default function和export function的区别
1.一个模块中export default只能有一个,export可以有多个
// demo01.js
export const num1 = 1;
export const num2 = 12;
export const num3 = 123;const address = '北京市';
export default address;// demo02.js
import { num1,num2,num3 } from './demo01.js';
console.log(num1,num2,num3) // 1 12 123import add from './demo01.js';
console.log(add); // '北京市'
export default命令用于指定模块的默认输出。显然,一个模块只能有一个默认输出,因此
export default
命令只能使用一次。所以,import
命令后面才不用加大括号,因为只可能唯一对应export default
命令。本质上,export default
就是输出一个叫做default的变量或方法,然后系统允许你为它取任意名字,正因为可以取任何名字,所以在一个文件中只可以使用一个default。
看个例子,你就明白了
例子1:
// demo01.js
export default function () {return 'good'
}// demo02.js
// 系统是允许修改名字的,我们把他的名字改成add
import add from './demo01.js';
console.log(add()); // 'good'
例子2:
下面我们用export default导出2个变量,浏览器会报错Uncaught SyntaxError: Identifier '.default' has already been declared
// demo01.js
const tell = '10110';
export default tell;const address = '北京市';
export default address;// demo02.js
import info from './demo01.js';
console.log(info);
2.export default不可以声明变量导出,export 可以
export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句。
export default a = 1
export default const a = 1
export const b = 1
export default a的含义是将变量a的值赋给变量default。所以,第二种写法会报错
同样地,因为export default命令的本质是将后面的值,赋给default变量,所以可以直接将一个值写在export default之后。
export default 12
3.用export default时,import引入不加{},export时,需要加{}
// 第一组
export default function fn1() {}; // 输出
import fn1 from 'file1'; // 输入// 第二组
export function fn2() {}; // 输出
import {fn2} from 'file2'; // 输入
上面代码的两组写法
- 第一组是使用
export default时
,对应的import语句不需要使用大括号; - 第二组是不使用
export default时
,对应的import语句需要使用大括号。
参考文章:
ES6阮一峰
export default function和export function的区别相关推荐
- export、export default、module.export区别
在es6里面定义模块,导出模块时可以使用export.export default 这2者区别: 在同一个文件里面可以有多个export, 一个文件里面只能有1个export default 1 // ...
- JS的export , export default,import,export(导出js)和import(引入js)完整用法
A.规范文件名 我们确定我们有一个文件是common.js 这个文件在根目录的static文件夹下 路径如下 |-根目录/static/common.js export(导出)和import(引入) ...
- ES6 模块加载export 、import、export default 、import() 语法与区别,笔记总结
ES6模块加载export .import.export default .import() 语法与区别 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种. ...
- export ,export default 和 import 区别 以及用法
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和import export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口 ...
- module.exports与exports,export与export default之间的关系和区别
CommonJS模块规范和ES6模块规范完全是两种不同的概念. CommonJS模块规范: 根据这个规范,每个文件就是一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文 ...
- export ,export default 和 import 区别以及用法
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和import export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口 ...
- require 动态加载_require,exports,module.exports和import,export,export default
我们前端在开发过程中经常会遇到导入导出功能, 在导入时,有时候是require,有时候是import 在导出时,有时候是exports,module.exports,有时候是export,export ...
- module.exports 和 export default
CommonJS模块规范和ES6模块规范完全是两种不同的概念 CommonJS模块规范 Node应用由模块组成,采用CommonJS模块规范. 根据这个规范,每个文件就是一个模块,有自己的作用域.在一 ...
- js模块化:默认导出 export default
前言 接 js模块化:require.import和export 研究一下默认导出 默认导出形式1:export { xx as default } 默认导出形式2:export default { ...
- export、export default、import 的注意和require
export 暴露有两种形式,一个是声明,一个是直接暴露简写的对象,如下 //第一种:直接声明函数或者变量 export let a = 1; export let b = 1; export fun ...
最新文章
- 对学习JAVA的总结 第一次课
- c语言解析json报文源码,GitHub - faycheng/cJSON: cJson源码和源码分析
- 安装linux系统选择重新分区会怎么样,弱弱的问一下 双系统安装中linux如何分区?分区太多会不会不好?...
- IETF:名词历史简介互联网精神的典范
- java - 通用 CRUD(增、删、改、查)工具类,代码高效复用
- xml转化为Dictionary
- 2013-07-23 IT 要闻速记快想
- 公司财务(书籍学习过程总结)
- MTK Battery系统
- cad尺寸标注快捷键_CAD快速在尺寸标注后加上公差的方法有哪些?【AutoCAD教程】...
- 淘宝优惠券(高省)那些套路,我已经看穿了
- Q版本 安卓手机录制系统声音
- pdf java解析_用java如何解析pdf文件
- go中生成可执行文件
- MonoRail学习笔记三:使用方便功能强大的routing功能
- bit、Byte、bps、Bps、pps、Gbps单位说明
- rgw bucket sync
- 大专生出身?java技术栈xmind
- 如何让智能家居环境,变得更加安全
- 87654321盏灯!
热门文章
- 阿里云OSS配制域名及SSL证书教程
- snapchat中国使用_如何使用Snapchat:发送快照和消息的基础
- quartus中与modelsim进行联合仿真出现错误error:(vopt-13130)failed to find design unit****
- Win7中删除桌面IE图标
- 【最后一天报名】数据科学峰会分论坛:供应链、用户增长、电商零售
- 微信小程序标题自定义、左上角返回首页小房子
- qcloud-ocr
- 中国山梨酸市场运营动态分析与前景方向预测报告2022-2028年
- esp32(ROS2foxy)之飞龙在天turtlesim最快能多快???
- 错误No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbala