对不起,真的是糟糕的“标题” ...
我在Chrome(Version 46.0.2490.80 m
)开发人员工具中运行了一个简单的脚本。该undefined
来自哪里?
正常运行时,以下相同脚本可以正常运行:
最佳答案
这是因为开发人员工具将您提供的字符串解析到控制台中,然后将其作为函数执行,并返回/打印返回值,无论您放置的语句返回的是什么。
执行以下代码,没有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/