我正在学习Javascript,我遇到了一些我觉得有些奇怪的行为。
下面的简单代码会在控制台日志中生成预测结果。它显示了短语Hello!
var test = "Hello!";
console.log(test);
然而,下一个代码片段会返回一些我没想到的内容。它在控制台日志中返回undefined。此外,即使从未在函数中调用或使用警报,警报也会自动执行。这两行是整个代码。
var test = alert("Hello!");
console.log(test);
为什么弹出警报,为什么console.log未定义?我正试图掌握机械装置,所以提前感谢!
答案 0 :(得分:3)
函数调用与任何其他语句一样。它不需要在另一个要评估的函数内部。如果它超出任何功能,则会立即对其进行评估。
当你致电alert("Hello!")
时,它会被调用并将其返回值传递到左侧。
alert
函数返回undefined
,这就是您在登录时看到的内容。
答案 1 :(得分:2)
window.alert()
调用在执行时不会返回任何内容,因此它是undefined
。 undefined
值存储在您写入控制台的test
中。