在JavaScript當(dāng)中,定義變量通過(guò)var操作符+變量名。但是不加 var 操作符,直接賦值也是可以的。
例如 : message = "hello JavaScript ! " 即定義了一個(gè)全局變量message,并賦值 “Hello JavaScript!”
--《JavaScript高級(jí)程序第三版》
如同往日一般,一群人在所謂的技術(shù)交流群里面相互斗圖著。突然老王莫名的正經(jīng)起來(lái),在群里發(fā)了一道JavaScript的題目,讓大家猜一猜這道題的答案。
var foo = 1; function bar() {
foo = 10; return; function foo() {}
}
bar(); console.log(foo); //求控制臺(tái)輸出多少?
看到這到題目之后,立刻不加思索回答了“10”。
首先第一步定義一個(gè)全局變量foo = 1,然后函數(shù)執(zhí)行的時(shí)候又定義全局變量 foo = 10覆蓋了之前的全局變量,return之后,這個(gè)函數(shù)就直接結(jié)束, function foo {}來(lái)不及定義。因此控制臺(tái)輸出10;
按照在《高三》上面看到知識(shí)點(diǎn)推斷,毫無(wú)問(wèn)題,簡(jiǎn)直完美呀!
【給自己32個(gè)贊!】
但是,在把答案發(fā)出去之后。本能就感覺(jué)這道題不可能這么簡(jiǎn)單,不正經(jīng)的群突然討論正經(jīng)的代碼,肯定會(huì)有大坑等著人來(lái)跳。一