var x = 1;
if(function f(){},x=f){
}
console.log(x);
为什么在执行if语句的时候,会报f is not defined的错误.
var x = 1;
if(function f(){},x=f){
}
console.log(x);
为什么在执行if语句的时候,会报f is not defined的错误.
[觉得对弱类型语言还钻了下牛角尖]
条件判断里不应该进行有作用域的定义,
发现只能定义全局变量
if(i=3,x=i) //good
if(var i=3,x=i) //bad
你的例子,我给你改一下就正确了,只是发现一点规律,具体原因,我不确定
var x = 1;
if(gF = function f(){return 3;},x=gF){ }
console.log(x());//3
more:
if(window.test = function useless(){return 3;},x=window.test())//good
{
console.log(test());//3
//console.log(useless());//bad
}