ES6學(xué)習(xí)筆記
1廊蜒、let命令
ES6中新增了let,用于聲明變量湃番,與var類似,但let聲明只是在其block(塊)作用域生效网杆。
{
let a = 10;
var b = 1;
}
a //ReferenceError: a is not defined
b //1
2、const命令
同樣在塊級(jí)作用域有效的另一個(gè)變量聲明方式是 const,它可以聲明一個(gè)常量碳却。ES6 中队秩,const 聲明的常量類似于指針,它指向某個(gè)引用昼浦,也就是說(shuō)這個(gè)「常量」并非一成不變的馍资,如:
{
const ARR = [5,6];
ARR.push(7);
console.log(ARR); // [5,6,7]
ARR = 10; // TypeError
}
有幾個(gè)點(diǎn)需要注意:
let 關(guān)鍵詞聲明的變量不具備變量提升(hoisting)特性
let 暫時(shí)性死區(qū)
let 不允許重復(fù)聲明
塊級(jí)作用域:let 和 const 聲明只在最靠近的一個(gè)塊中(花括號(hào)內(nèi))有效
當(dāng)使用常量 const 聲明時(shí),請(qǐng)使用大寫變量关噪,如:CAPITAL_CASING
const 在聲明時(shí)必須被賦值
3鸟蟹、跨模塊常量
//constants.js 模塊
export const A =1;
export const B =2;
export const C =3;
//test1.js 模塊
import * as constants form './constants';
console.log(constants.A); //1
console.log(constants.C); //3
//test2.js 模塊
import {A,B} form './constants';
console.log(A); //1
console.log(B); //2
4、全局對(duì)象的屬性
全局對(duì)象是最頂層的對(duì)象使兔,瀏覽器指的是window對(duì)象建钥,Nodejs 是 global對(duì)象。
window.a = 1; //a = 1
a=2;
window.a // 2
//全局變量b由let命令聲明虐沥,所以不是全局對(duì)象屬性熊经,返回undefined
let b = 10
window.b //undefined