ECMAScript6簡介

敖老黑發表於2017-12-18

#ECMScript6

####ECMAScript和JavaScript的關係 ECMAScript6是JavaScript語言的下一代標準,2015年6月正式釋出。Mozilla公司將在這個標準的基礎上,推出JavaScript2.0

ECMAScript是JavaScript語言的國際標準,而JavaScript是ECMAScript的實現

####瀏覽器相容

github.com/paulmillr/e…

#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
複製程式碼