記得之前的一次面試中,有個面試官問了我關於es6匯入和匯出的一些知識點,可惜當時對這方面沒在意,只知道每次機械的import和export,也不知道為啥要這樣用,現在靜下心來,好好的把這塊看了下,順便把自己的學習內容記錄下來,方便將來的時候翻閱。
es6模組主要是由export和import組成。乙個模組就是乙個獨立的檔案,該檔案內容的變數外部無法獲取。export用於規定模組的對外介面,import用於輸入其他模組的功能。 它有以下的幾個特點:
1,es6模組化是靜態化的,編譯時就能確定模組的依賴關係、輸入和輸出的變數。
import from './common'
上面**就是從common模組載入了path和getname兩個方法,而不載入其他的方法,這種載入就叫做編譯時載入或者靜態載入。效率比較高。
2,es6的模組自動採用嚴格模式。
3,注意this! 在模組中,頂層的this指向undefined,所以不要在頂層中使用this
4,export和import不能處於塊級作用域中,必須處於模組的頂層。
export的寫法分別有以下幾種:
1, export let a = 12, let a = 1; export3, let a = 1; export
同樣的,匯出function和class都要遵守上面的寫法
export匯出的是值的引用,所以可以獲取模組內部的實時值。
1, import from './common'2, import from './common'
3, import * as get from './common' ----> get.getname get.getage
import具有提公升效果,會提公升到整個模組的頭部首先執行。
因為使用import需要知道所要載入的變數名或者函式名,有沒有方法可以在不了解模組有哪些屬性和方法的情況下使用模組呢?
答案是有的,可以使用export default命令為模組指定預設的輸出。
本質上,export default就是輸出乙個叫做default的變數或者方法,所以後面不能跟變數宣告語句。
1, export defaultfunction
getname () {}
2, function getname(){} export default getname
每個模組只有乙個預設的輸出,所以可以預設輸出乙個匿名函式。 在import使用的時候,可以不使用大括號。
ES6關於promise技巧
1.推向promise物件推向 不同的狀態 const pro newpromise resolve,reject 2.原型成員 例項成員 註冊乙個後續處理函式,當promise為resolved狀態是執行該函式,當promise為rejected狀態是執行該函式的第二個引數 catch 註冊乙個後...
關於 ES6 新特性
本文談談關於es6的新特性,主要從 變數函式 陣列字串 物件導向 promise generator json 等幾個方面敘述。定義方式 特點var 可以重複宣告,無法限制修改,函式級作用域 let不能重複宣告,變數可以修改,塊級作用域 const 不能重複宣告,常量 不能修改,塊級作用域 原始函式...
ES6關於Promise的用法
含義 promise 物件用於乙個非同步操作的最終完成 或失敗 及其結果值的表示。簡單點說,它就是用於處理非同步操作的,非同步處理成功了就執行成功的操作,非同步處理失敗了就捕獲錯誤或者停止後續操作。new promise executor function resolve,reject else 我...