Chrome(`版本46.0.2490.80 m`)开发人员工具和'undefined'

时间:2015-11-04 14:52:19

标签: javascript google-chrome google-chrome-devtools

对于真正糟糕的'头衔'抱歉...

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

enter image description here

“正常”运行时,同样的脚本按预期工作: enter image description here

1 个答案:

答案 0 :(得分:1)

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

执行以下代码,没有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
})();

如果它是由浏览器脚本执行的,那么开发人员工具会打印函数打印的任何内容,并且函数会将值返回给调用者。 (这里,开发人员工具不需要打印浏览器脚本运行的所有函数返回值,然后你的日志就搞砸了。你会看到每个函数返回的随机返回值。