1. 程式人生 > >ES6常見知識點總結(未完)

ES6常見知識點總結(未完)

1.var 變數提升

使用var宣告的變數,宣告會被提升到作用域的頂部

舉幾個例子:

eg1:

console.log(a) // undefined
var a = 1

可以看做這樣

var a
console.log(a)
a=1

eg2:

var a = 10
var a
console.log(a) // 10

可以看作

var a;
var a;
a=10;
console.log(a)

eg3,函式宣告也會提升,函式提升會把整個函式挪到作用域頂部:

console.log(a) // ƒ a() {}
var a = 1
function
a() {}

看作:

var a;
function a() {}
console.log(a) // ƒ a() {}
a = 1

 

2.var,let,const對比

1.在全域性作用域下,var宣告的變數,會掛載到window上,其他二者不會

2.三者都存在提升,但是let,const的提升和var不同:雖然變數在編譯的環節中就被告知在這塊作用域中可以訪問,但是訪問是受限制的(形成暫時性死區):

所以let const必須先聲明後使用

var a = 1;
function test1(){
    console.log(a);
}

function
test2(){ console.log(a); let a; // 執行到上一步時就已經知道該作用域內有a,所以不會再往外層作用域找,但是形成了暫時性死區,這裡的a無法訪問 } test1() // 1 test2() // error, a is undefined

3.let 和 const 作用基本一致,但是後者宣告的變數不能再次賦值

 

3.模組化

 3.1為什麼要模組化?

 3.2實現模組化的方法有哪些?各有什麼特點?