在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 一道JS面試題,連續(xù)賦值,求解

一道JS面試題,連續(xù)賦值,求解

// 變種題
(function(){
 var  x = c =  b = {a:1}
})()

console.log(x.a); // error , x is not defined
console.log(c,b) // {a: 1} {a: 1}

這里為何x.a是undefined呢

回答
編輯回答
喜歡你

這涉及到的是變量作用域提升知識(shí):
var x = c = b = {a:1} 等價(jià)于

b = {a:1};  //注意沒(méi)有var
c = b;  //注意沒(méi)有var
var x = c;

如果你使用了var關(guān)鍵字,這個(gè)變量將只在定義它的函數(shù)內(nèi)生效。 沒(méi)有使用var關(guān)鍵字,這個(gè)變量將提升為全局變量。
所以,在外部直接使用x.a時(shí)直接報(bào)錯(cuò),因?yàn)樵谕饷娴淖饔糜蛑?,x根本未定義,更談不上x.a。而c和b是全局變量,能夠被訪問(wèn)到。

2017年2月23日 18:11