ES6 import和export中的 { } 是什么?

// 导出
let name = 'lxx'
let age = 18
let height = 1.88
export { name, age, height } 

// 报错 
export {
  name:name,
  age:age
}

// 导入 
import { name, age, height } from "./a.js"

报错的导出方式 说明 {} 不是一个对象,那么这里 export和import关键字后面的{} 到底是个什么东西?

阅读 2.8k
4 个回答

可以这么方便理解: export后面只能跟 “变量、函数、类 等的声明语句”和“简写表达式”以及default语句
第一种写法: 第一种写法是export 后面跟的是声明语句的“简写表达式”, 和他等价其实是:

export let name = 'lxx' // 这就是个声明语句
export let age = 18
export let height = 1.88

第二种写法: export后面跟着的个对象“值”, 他不是“简写表达式”, 更不是声明语句. 如果想要让第二种方法不报错, 只需要在export 后面加上 default 关键词就可以了. 或者改成声明语句

前者叫命名导出(Named Export),后者叫对象解构(Object Destruct)

语法上看起来都跟声明一个字面量对象似的,其实不是一回事儿,

模块声明语法,类似于区块作用域的代码块。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题