#ECMScript6
####ECMAScript和JavaScript的關係 ECMAScript6是JavaScript語言的下一代標準,2015年6月正式釋出。Mozilla公司將在這個標準的基礎上,推出JavaScript2.0
ECMAScript是JavaScript語言的國際標準,而JavaScript是ECMAScript的實現
####瀏覽器相容
#let命令
###基本用法 ES6新增了let命令,用來宣告變數。用法類似於var,但所生命的變數,只在let命令所在的程式碼塊內有效
###不存在變數提升 let不像var那樣會存在變數提升
###暫時性死區 只要塊級作用域記憶體在let命令,它所生命的變數就'繫結'(binding)這個區域,不在受外部影響
###不允許重複宣告
let不允許在相同作用域內,重複宣告同一個變數
#const命令 const也用來宣告常量,一旦宣告常量的值不可改變。
#跨模組常量
//module.js
export const variantName = 'Lily';
export const floatcount = 3.1.4
//use.js
//匯入全部
import * as var variant from './module';
console.log(variant.variantName);
//匯入某一個
import variantName as variant from './module';
//匯入某幾個
import { variantName , floatcount} as variant from './module'
複製程式碼
#全域性物件屬性 全域性物件是最頂層的物件,在瀏覽器環境指的是window物件,在Node.js指的是global物件。在JavaScript語言中,所有全域性變數都是全域性物件的屬性。(Node的情況比較特,這一條只對REPL環境適用,模組環境必須顯式生命global屬性)
ES6規定,var命令和function命令宣告的全域性變數,屬於全域性物件的屬性;let命令、const命令、class命令宣告的全域性變數,不屬於全域性物件的屬性
var name = 'test';
//瀏覽器環境下
console.log(window.name); //輸出 name
//node.js環境下
console.log(global.name); //輸出 name
//通用環境下
console.log(this.name); //輸出 name
複製程式碼