函数简写
// 立即执行函数
(function test(){})()
// () => ({})等同于() => { return {} }
const func = (num) => ({ age:num })
// 以下语法等价
data.map(item => item.x)
data.map((item) => { return item.x })
模块数据导出
// demo.js 同时导出对象和函数
export const demo = () => {
return true
}
export default { demo }
// index.js 同时接收并使用对象和函数
import testdemo, { demo } from './demo.js';
console.log(testdemo.demo())
console.log(demo())
// --------------------------------------
// test.js导出一个对象
const getRandom = () => {}
export default { getRandom }
import test from './test.js';
console.log(test.getRandom())
import { getRandom } from './test.js';
console.log(getRandom())
// --------------------------------------
// test.js导出一个函数
const getRandom = () => {}
export default getRandom
import regx from './test.js';
console.log(regx())
export 和 export default 区别
export default向外暴露的成员,可以使用 任意变量 来接收(这里说的任意变量也可是解构对象)- 在一个模块中,
export default只允许向外暴露一次 - 使用
export向外暴露的成员,只能使用{}的形式来接收,且名称要和导出的一致 export导出的成员,可以使用as来起别名
exports 和 module.exports 区别
module.exports和exports两者没有区别,是全等的
TIP
不恰当的使用方法:exports = xxx
exports 在默认情况下是指向 module.exports 对象的引用,如果为 exports 赋值了,那么也就是说 exports 不再指向 module.exports 所指的对象的地址,而我们向外共享成员的最终结果是 module.exports 所指的对象,如此便会导致错误
async 和 await
async表示这是一个async函数,await只能用在async函数里面, 不能单独使用async返回的是一个Promise对象,await就是等待这个Promise的返回结果后, 再继续执行await等待的是一个Promise对象, 后面必须跟一个Promise对象, 但是不必写then(), 直接就可以得到返回值
const func = async () => { return 1 }
// 声明为异步函数,调用后会将return的结果包装成Promise返回
// 返回的结果: Promise {<fulfilled>: 1}
func()
