es6 引入了模組化, es6 的模組化分為匯出(export) @與匯入(import)兩個模組。
es6模組化特點:
(1)es6 的模組自動開啟嚴格模式,不管你有沒有在模組頭部加上use strict;。
(2) 模組中可以匯入和匯出各種型別的變數,如函式,物件,字串,數字,布林值,類等。
(3) 每個模組都有自己的上下文,每乙個模組內宣告的變數都是區域性變數,不會汙染全域性作用域。
(4) 每乙個模組只載入一次(是單例的), 若再去載入同目錄下同檔案,直接從記憶體中讀取。
export 命令用於匯出, import 命令 用於匯入:
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
test1.js
// import from "../export/module1.js";
// console.log(name); //孫悟空
// console.log(***); //男
//或匯入部分變數
import from "../export/module1.js";
console.log(***); //男
demo01.html
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
html:
(1)as在export中的用法:變數使用別名,隱藏模組內部的變數
module2.js:
let name = "孫悟空";
let *** = "男";
export ;
html:
(2)as在import中的用法:匯入多個模組的變數,使用as解決命名衝突。
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
module3.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "豬八戒";
let *** = "男";
export ;
html:
module4.js
// function add(...items)
// // return sum;
// }
// export;
//或export function add(...items)
return sum;
};
html
module4.js
// class student
// // sayhi()
//
// }
// export ;
//或export class student
sayhi()
}
html
module5.js
let name = "孫悟空";
let *** = "男";
let emp = ;
export ;
html
module5.js
let name = "孫悟空";
let *** = "男";
let emp = ;
export ;
html
使用import命令的時候,使用者需要知道所要載入的變數名或函式名,否則無法載入,export default 向外暴露的
成員,可以使用任意變數來接收,解決上述問題。
export default 命令特點:
(1)在乙個檔案或模組中,export、import 可以有多個,export default 僅有乙個。
(2)export default 中的 default 是對應的匯出介面變數。
(3)匯入匯出不需要{}符號。
(4)export default 向外暴露的成員,可以使用任意變數來接收。
module6.js
//export default匯出變數不需要var
//export var a = 10; // 正確
// 正確
var a = 10;
export default a;
// 錯誤
//export default var a = 10;
html
module6.js
function add(...items)
return sum;
}//此處add不需要{}
export default add
html
export 與 import 可以在同一模組使用,我們稱為復合使用。
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
module7.js
//復合使用的語法
let emp = ;
export from './module1.js';
// //上面的export等於如下:
// // import from './module1.js';
// // export ;
export
html
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
module7.js
//復合寫法實現介面改名
let emp = ;
export from './module1.js';
export
html
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
module7.js
// 轉換為預設介面
let emp = ;
export from './module1.js';
export
html
module6.js
function add(...items)
return sum;
}//此處add不需要{}
export default add
module7.js
//將預設介面轉換為命名介面
export from './module6.js';
html
module1.js
// export let name = "孫悟空";
// export let *** = "男";
//或let name = "孫悟空";
let *** = "男";
export ;
module7.js
//匯出所有
export * from './module1.js'
html
ES6之模組化
本文介紹es6實現模組化的方法 使用import和export。匯入的時候需不需要加大括號的判斷 1.當用export default people匯出時,就用 import people 匯入 不帶大括號 2.乙個檔案裡,有且只能有乙個export default。但可以有多個export。3.當...
es6 的模組化
這個是需要複習下的,否則後面的react vue 就理解不清晰了 我覺得js 很牛,為啥,因為前後端都是js 這樣結合起來,很順暢 而且node 作為後端,搭建輕量級伺服器,很是好用,寫個介面絲毫沒有任何問題 後面的基本三大塊,1,node express koa 2,三大框架,react vue ...
ES6的模組化
模組化的特點 1 模組 自動執行在嚴格模式下,沒有任何辦法跳出嚴格模式 2 在模組的作用域下建立的變數,不會被新增到全域性作用域中 3 如果外部可以讀取模組當中的內容,需要模組的匯出 4 模組頂級作用域的this為undefined 匯出資料 export var color pink export...