我试图了解当我在另一个控制台.log()中调用控制台.log时发生了什么,如下所示:
console.log(console.log("Hello"));
我的结果是:
Hello
undefined
外部控制台.log() 试图显示未定义的内容是什么?
console.log("Hello")
的第一个调用打印"Hello"undefined
并将值返回给下一个调用。因此,顺序是
Hello // from console.log("Hello");
undefined // from console.log(undefined);
基本上
typeof console = "object"
typeof console.log = "function"
typeof console.log("Hello") = "undefined"
所以第一个控制台.log(x)有一个未定义的地方有一个x。
console.log("Hello") : void" 的返回值与 javascript
console.log()
不返回任何内容,它只是打印到控制台。因此,您正在尝试log
一个未定义的值。
正如您在下面看到的,我们模仿console.log
的行为 document.write
.第二个值未定义,如预期的那样:
document.write(document.write("Hello"));
这是因为您正在用console
编写此代码,并且console.log()
不返回任何值。如果您在任何函数中编写相同的代码,则得到不同的结果
例如
function test()
{
console.log("test")
return 1;
}
现在,当您在控制台中执行test()
函数时,您将获得
test
1
如果你定义另一个不返回类型的函数。
function test2()
{
console.log("test")
}
然后你得到
test
undefined
如果 JavaScript 方法没有显式返回,则返回undefined
对象。 控制台.log根据Chrome看起来像:
console.log(object [, object, ...])
因此,内部控制台.log('Hello')//Print 输出浏览器控制台,但它返回undefined
因此外部控制台.log正在打印undefined
。