我刚刚显示的警报值,但我得到a
是不明确的原因?我会解释一下问题:为什么变量是全局声明的undefined?
首先我用false
参数调用函数,它用a = 1;
显示提醒。但是当我通过true
作为参数时,它首先显示警报2
(如预期的那样是本地),但是当它再次显示2
?第三个说a是undefined
?
function ab(p){
a = 1;
if(p){
var a = 2
alert(a)
}
alert(a)
}
ab(false);
alert(a);
意外的结果ab(true)
?
'a'未定义,因为它从未在全局范围内声明。 – 2014-09-06 08:34:04
请阅读此:http://docstore.mik.ua/orelly/webprog/jscript/ch04_03.htm **和** http://www.adequatelygood.com/JavaScript-Scoping-and-Histing.html – 2014-09-06 15:59:12