当您从函数返回JavaScript语句时会发生什么,例如return console.log(“Hello”)

What happens when you return a JavaScript statement from a function, e.g. return console.log( "Hello" )

本文关键字:console return 例如 log Hello 什么 返回 函数 JavaScript 语句      更新时间:2023-09-26

我已经搜索过了,但我认为没有人问过这个问题:本质上,之间有什么区别

function $( input ){
    return console.log( input );
}
$( "My message" );

以及更传统的

function $( input ){
   console.log( input );
}
$( "My message" );

它们都有相同的效果。

如果可以返回,这是否意味着console.log( "Hello" )是一个对象?

这与返回任何其他值没有什么不同。

您正在返回console.log的返回值,它不会返回任何内容。

如果您可以返回它,这是否意味着console.log("Hello")是一个对象?

没有。console.log("Hello")是一个函数调用。函数调用可能显式返回值。

没有显式返回值的函数隐式返回undefined,就像console.log()一样。

function $( input ) {
    return console.log( input );
}

代表:

function $( input ) {
    var ret = console.log( input );
    return ret;
}

此外,console.log( input )的返回值是undefined,并且向调用对象返回一个undefined。由于丢弃了$( "My message" );的返回值,因此不会发生任何事情。实际上,您可以使用返回值,例如:

var ret = $( "My message" );
console.log(ret);

并在控制台中打印CCD_ 10。

var test = $( "Hello" );将生成test,无论$函数返回什么。

console.log不返回任何内容,因此var test = console.log('hey');将使test的值变为undefined

Console.log("Hello");返回undefined,只需在javascript shell上进行测试:

var s = $("hello");
console.log(s);

这将首先在Console.log代码中打印Hello,然后未定义:s值

您可以返回它,因为未定义是可接受的返回值,因为Console.log不是语句,而是函数