foo();//Uncaught TypeError: foo is not a function
var a=true;
if(a){
function foo(){console.log("a");}
}else{
function foo(){console.log("b");}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
看看这个吧:命名函数表达式探秘(http://justjavac.com/named-fu...
你这个代码是从书上赋值下来的?书上不能写这么2的代码吧?
学习编程不是钻牛角尖,对于一些乱七八糟的说法,写法和代码,不要理会。就你的代码而言,chrome下执行到foo()的时候,浏览器就会自动去找这个函数。但是foo()方法在语句块内,浏览器没找到,就报错了。不排除其他浏览器能执行过去,不过现在JavaScript语言正在逐渐严谨化,这种写法会逐渐被淘汰。
报错是因为函数还未声明。。。并且由于a为true也不会是b啊