JavaScript中嵌套两层console.log为何输出undefined?
为什么
console.log(console.log("hello"))会输出undefined? 这是完全正常的JavaScript行为,核心在于函数的返回值规则:
- JavaScript里,任何函数如果没有通过
return语句显式返回一个值,默认都会返回undefined。 console.log()就是这类函数——它的作用是把内容打印到控制台,但本身不会返回任何有效数据,所以调用console.log("hello")后,这个表达式的结果就是undefined。
拆解你的代码执行顺序:
- 先执行内层的
console.log("hello"),控制台输出第一行的hello; - 外层的
console.log()会把内层调用的返回值(也就是undefined)打印出来,所以就有了第二行的undefined。
这并非什么“预期外的行为”,只是你可能没留意到console.log()本身没有返回值这个细节而已。
内容的提问来源于stack exchange,提问作者SAMRAT PATEL
相关产品推荐
相关产品推荐

