对不起,真的是糟糕的“标题” ...

我在Chrome(Version 46.0.2490.80 m)开发人员工具中运行了一个简单的脚本。该undefined来自哪里?

javascript - Chrome(版本46.0.2490.80 m)开发人员工具和“未定义”-LMLPHP

正常运行时,以下相同脚本可以正常运行:
javascript - Chrome(版本46.0.2490.80 m)开发人员工具和“未定义”-LMLPHP

最佳答案

这是因为开发人员工具将您提供的字符串解析到控制台中,然后将其作为函数执行,并返回/打印返回值,无论您放置的语句返回的是什么。

执行以下代码,没有return语句,因此将显示undefined

(function(){
    [1,2,3].forEach(function(val) {
        console.log(val);
     });
    //no return statement //Hence undefined
})();


但是看看下面的情况,该函数返回了一些值。

(function(){
    [1,2,3].forEach(function(val) {
        console.log(val);
     });
    return "YOU DONT SEE UNDEFINED NOW"; //prints the string
})();


反之,如果由浏览器脚本执行,则开发人员工具将打印该函数所打印的内容,并且该函数将值返回给其调用方。 (在这里,开发人员工具不需要打印浏览器脚本运行的所有函数返回值,那么您的日志就会变得一团糟。您将看到每个函数返回的随机返回值。

关于javascript - Chrome(版本46.0.2490.80 m)开发人员工具和“未定义”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33524896/

10-13 06:52