当我在控制台.log中调用控制台.log时发生了什么



我试图了解当我在另一个控制台.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

相关内容

最新更新