Javascript 匿名函数不';不总是返回一个值
我有这样的JavaScript代码=>Javascript 匿名函数不';不总是返回一个值,javascript,komodo,Javascript,Komodo,我有这样的JavaScript代码=> (function(){ document.getElementById("element").onclick = function(){ var r = confirm("Are you sure ?"); if (r){ return true; } else { return false; } } })(); 这个脚本可以
(function(){
document.getElementById("element").onclick = function(){
var r = confirm("Are you sure ?");
if (r){
return true;
} else {
return false;
}
}
})();
这个脚本可以工作,但只是通知我严格警告匿名函数并不总是返回值
我感兴趣的是这意味着什么,我如何才能防止这种情况,它会引发任何问题吗?有什么想法吗?谢谢:)这不是因为匿名函数,而是因为带有
返回的else
是多余的。您不需要它,因为return退出函数,如果if
语句不为true,则将执行默认的return
(function(){
document.getElementById("element").onclick = function(){
var r = confirm("Are you sure ?");
if (r){
return true;
}
return false;
}
})();
编辑:
正如星云所说,这可以在更短的时间内完成:
(function(){
document.getElementById("element").onclick = function(){
return confirm("Are you sure ?");
}
})();
实际上,脚本中启用了严格警告
,但如果脚本中没有使用“use strict”,那么我认为,正如您在评论中所说,您正在使用Komodo IDE
,并且很可能您已经安装了Firefox扩展以进行调试
,这是支持JavaScript调试的浏览器端组件所必需的
如果是这样,那么它有一些设置,您可以启用或禁用。要禁用严格模式警告
,只需进入编辑菜单>首选项>Javascript(从类别中)并取消选中启用严格警告消息,即可。但是使用严格模式
是一种很好的编程实践。下面是帮助您的屏幕截图
返回确认(“您确定吗?”)
也会有同样的效果,不是吗?所以它是警告,因为在else中“return”不常见,是吗?基本上是的,return
内部else
不是那么常见,它在else if
中,而switch
但是一个if…else
则是多余的。明白了,但它仍然给了我同样的警告,我使用的是Komodo IDE,可能是Komodo的错?我有点困惑:),因为在该文件中,我有相同的脚本,但用于其他形式,并且在该脚本中,它不会给我通知,但它下面的相同脚本没有。虽然名称有点混乱,但Komodo的“严格警告消息”与严格模式没有联系。它们是两种不同的东西。严格模式实际上改变了代码的语义。科莫多的严格警告只是对这类事情的额外警告;这些警告可以应用于任何代码,无论它是否使用严格模式。