ES6入門教程之let、const的使用方法
來源:懂視網(wǎng)
責編:小采
時間:2020-11-27 21:58:47
ES6入門教程之let、const的使用方法
ES6入門教程之let、const的使用方法:一、前提 解決ES5中只有全局作用域和函數(shù)作用域,沒有塊級作用域而帶來的不合理的場景。 let 基本用法 用法和var 一樣,只是let聲明的變量只有在let命令所在的代碼塊有效 { let a = 10; var b = 1; } a // ReferenceError: a
導讀ES6入門教程之let、const的使用方法:一、前提 解決ES5中只有全局作用域和函數(shù)作用域,沒有塊級作用域而帶來的不合理的場景。 let 基本用法 用法和var 一樣,只是let聲明的變量只有在let命令所在的代碼塊有效 { let a = 10; var b = 1; } a // ReferenceError: a
頂層對象的屬性
在瀏覽器環(huán)境指的是window對象,在 Node 指的是global對象,ES5 之中,頂層對象的屬性與全局變量是等價的。
window.a = 1;
a // 1
a = 2;
window.a // 2
global 對象
ES5 的頂層對象,本身也是一個問題,因為它在各種實現(xiàn)里面是不統(tǒng)一的。
- 瀏覽器里面,頂層對象是window,但 Node 和 Web Worker 沒有window。
- 瀏覽器和 Web Worker 里面,self也指向頂層對象,但是 Node 沒有self。
- Node 里面,頂層對象是global,但其他環(huán)境都不支持。
同一段代碼為了能夠在各種環(huán)境,都能取到頂層對象,現(xiàn)在一般是使用this變量,但是有局限性。
- 全局環(huán)境中,this會返回頂層對象。但是,Node 模塊和 ES6 模塊中,this返回的是當前模塊。
- 函數(shù)里面的this,如果函數(shù)不是作為對象的方法運行,而是單純作為函數(shù)運行,this會指向頂層對象。但是,嚴格模式下,這時this會返回undefined。
- 不管是嚴格模式,還是普通模式,
new Function('return this')()
,總是會返回全局對象。但是,如果瀏覽器用了 CSP(Content Security Policy,內(nèi)容安全策略),那么eval、new Function這些方法都可能無法使用。
總結
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
ES6入門教程之let、const的使用方法
ES6入門教程之let、const的使用方法:一、前提 解決ES5中只有全局作用域和函數(shù)作用域,沒有塊級作用域而帶來的不合理的場景。 let 基本用法 用法和var 一樣,只是let聲明的變量只有在let命令所在的代碼塊有效 { let a = 10; var b = 1; } a // ReferenceError: a