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
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。