W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
14.1?var
?聲明會(huì)被提升至該作用域的頂部,但它們賦值不會(huì)提升。let
?和?const
?被賦予了一種稱(chēng)為「暫時(shí)性死區(qū)(Temporal Dead Zones, TDZ)」的概念。這對(duì)于了解為什么?type of 不再安全相當(dāng)重要。
// 我們知道這樣運(yùn)行不了
// (假設(shè) notDefined 不是全局變量)
function example() {
console.log(notDefined); // => throws a ReferenceError
}
// 由于變量提升的原因,
// 在引用變量后再聲明變量是可以運(yùn)行的。
// 注:變量的賦值 `true` 不會(huì)被提升。
function example() {
console.log(declaredButNotAssigned); // => undefined
var declaredButNotAssigned = true;
}
// 編譯器會(huì)把函數(shù)聲明提升到作用域的頂層,
// 這意味著我們的例子可以改寫(xiě)成這樣:
function example() {
let declaredButNotAssigned;
console.log(declaredButNotAssigned); // => undefined
declaredButNotAssigned = true;
}
// 使用 const 和 let
function example() {
console.log(declaredButNotAssigned); // => throws a ReferenceError
console.log(typeof declaredButNotAssigned); // => throws a ReferenceError
const declaredButNotAssigned = true;
}
14.2?匿名函數(shù)表達(dá)式的變量名會(huì)被提升,但函數(shù)內(nèi)容并不會(huì)。
function example() {
console.log(anonymous); // => undefined
anonymous(); // => TypeError anonymous is not a function
var anonymous = function() {
console.log('anonymous function expression');
};
}
14.3?命名的函數(shù)表達(dá)式的變量名會(huì)被提升,但函數(shù)名和函數(shù)函數(shù)內(nèi)容并不會(huì)。
function example() {
console.log(named); // => undefined
named(); // => TypeError named is not a function
superPower(); // => ReferenceError superPower is not defined
var named = function superPower() {
console.log('Flying');
};
}
// the same is true when the function name
// is the same as the variable name.
function example() {
console.log(named); // => undefined
named(); // => TypeError named is not a function
var named = function named() {
console.log('named');
}
}
14.4?函數(shù)聲明的名稱(chēng)和函數(shù)體都會(huì)被提升。
function example() {
superPower(); // => Flying
function superPower() {
console.log('Flying');
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: