javascript中的esm

esm是什么

esm 是将 javascript 程序拆分成多个单独模块,并能按需导入的标准。和webpackbabel不同的是,esm 是 javascript 的标准功能,在浏览器端和 nodejs 中都已得到实现。使用 esm 的好处是浏览器可以最优化加载模块,比使用库更有效率

esm 标准通过import, export语法实现模块变量的导入和导出

esm 模块的特点

  1. 存在模块作用域,顶层变量都定义在该作用域,外部不可见
  2. 模块脚本自动采用严格模式
  3. 模块顶层的this关键字返回undefined
  4. esm 是编译时加载,也就是只有所有import的模块都加载完成,才会开始执行
  5. 同一个模块如果加载多次,只会执行一次

export

export语句用来导出模块中的变量

// 导出变量
export let count = 1;
export const CONST_VAR = 'CONST_VAR';
// 导出函数
export function incCount() {
count += 1;
}
// 导出类
export class Demo {

}

function add(x) {
return x + count;
}
// 使用export导出一组变量
export {
count,
add,
// 使用as重命名导出的变量
add as addCount,
}

// 导出default
export default add

// 合并导出其他模块的变量
export { name } from './esm_module2.js'
export * from './esm_module2.js'

<< · Back Index ·>>

发表回复

相关推荐

什么是JDK?什么是JRE?什么是JVM?它们有啥联系+区别?

1、JDK、JRE、JVM的关系 引用oracle官网对JDK的概述,里面很明确指出jdk、jre、jvm的关系,jdk是包括jre的,而jvm是jre是一 ...

· 1分钟前

廣勝寺中被低估瞭的國寶

廣勝寺位於山西省洪洞縣城東北17公裡霍山南麓,始建於東漢桓帝建和元年(公元147年),原名俱廬舍寺,唐代改稱廣勝寺。該寺是...

· 10分钟前

觀致5淪為抖音笑柄,寶能當年種下的苦果,隻能自己吃?

“山是山,河是河,越野還得聯動雲大哥”、“N檔直接踩油門,然後直接D檔就可以瞭”、“年輕人第一臺帶移動廁所的SUV”、“聽說這個...

· 13分钟前

無人駕駛、自動駕駛面臨的一大挑戰——中國式過馬路!科斯定理下的路權分配問題!

無人車來也(公眾號 無人車來也 ),有滋有味解讀無人駕駛、自動駕駛、智能駕駛故事!值得關註!紅燈停,綠燈行。這是一個連...

· 15分钟前

此處清風明月——蘇州滄浪亭記

這已經是我第三次造訪蘇州。這次造訪蘇州,最主要是為瞭去滄浪亭逛逛。為什麼選擇滄浪亭呢?若說起最初的起因,要歸屬到一次...

· 16分钟前