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; } } })(); 这个脚本可以

我有这样的JavaScript代码=>

(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的“严格警告消息”与严格模式没有联系。它们是两种不同的东西。严格模式实际上改变了代码的语义。科莫多的严格警告只是对这类事情的额外警告;这些警告可以应用于任何代码,无论它是否使用严格模式。