foo();//Uncaught TypeError: foo is not a function
var a=true;
if(a){
function foo(){console.log("a");}
}else{
function foo(){console.log("b");}
}
foo();//Uncaught TypeError: foo is not a function
var a=true;
if(a){
function foo(){console.log("a");}
}else{
function foo(){console.log("b");}
}
你这个代码是从书上赋值下来的?书上不能写这么2的代码吧?
学习编程不是钻牛角尖,对于一些乱七八糟的说法,写法和代码,不要理会。就你的代码而言,chrome下执行到foo()的时候,浏览器就会自动去找这个函数。但是foo()方法在语句块内,浏览器没找到,就报错了。不排除其他浏览器能执行过去,不过现在JavaScript语言正在逐渐严谨化,这种写法会逐渐被淘汰。
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答895 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
看看这个吧:命名函数表达式探秘(http://justjavac.com/named-fu...