javascript - 在下面的这段代码中输出的怎么不是b呀?
伊谢尔伦
伊谢尔伦 2017-04-11 10:16:20
[JavaScript讨论组]
foo();//Uncaught TypeError: foo is not a function
var a=true;
if(a){
    function foo(){console.log("a");}
}else{
    function foo(){console.log("b");}
}
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
巴扎黑

看看这个吧:命名函数表达式探秘(http://justjavac.com/named-fu...

函数声明还有另外一个重要的特点,即通过条件语句控制函数声明的行为并未标准化,因此不同环境下可能会得到不同的结果。有鉴于此,奉劝大家千万不要在条件语句中使用函数声明,而要使用函数表达式。

怪我咯

你这个代码是从书上赋值下来的?书上不能写这么2的代码吧?
学习编程不是钻牛角尖,对于一些乱七八糟的说法,写法和代码,不要理会。就你的代码而言,chrome下执行到foo()的时候,浏览器就会自动去找这个函数。但是foo()方法在语句块内,浏览器没找到,就报错了。不排除其他浏览器能执行过去,不过现在JavaScript语言正在逐渐严谨化,这种写法会逐渐被淘汰。

巴扎黑

报错是因为函数还未声明。。。并且由于a为true也不会是b啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号