Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js:console.log()是函数吗?_Javascript_Node.js_Function_Console.log - Fatal编程技术网

Javascript node.js:console.log()是函数吗?

Javascript node.js:console.log()是函数吗?,javascript,node.js,function,console.log,Javascript,Node.js,Function,Console.log,没错,console.log()是函数吗?为什么以下两个代码段有不同的输出 function delay(x) { console.log('Start of timeout'); return x; }; setTimeout(function(){console.log('End of timeout');}, delay(5000)); console.log('Start to do something else'); 是的,console.log是一个函数 第一个代

没错,console.log()是函数吗?为什么以下两个代码段有不同的输出

function delay(x) {
    console.log('Start of timeout');
    return x;
};
setTimeout(function(){console.log('End of timeout');}, delay(5000));
console.log('Start to do something else');


是的,console.log是一个函数


第一个代码段为
setTimeout
使用预期的syntac。第二个调用
console.log
inline,它返回
undefined
。这是
setTimeout
的第一个参数。这解释了超时结束时出现的不同计时

在第一个示例中,您传递了
setTimeout
一个稍后调用的函数,但在第二个示例中,您调用了
console.log
并将返回值传递给
setTimeout
函数。setTimeout的第一个参数是一个函数,在第一个代码段中传递函数,ok。在第二个函数中,您调用的是函数,因此您不是将函数作为参数传递,而是函数返回的值
function delay(x) {
    console.log('Start of timeout');
    return x;
};
setTimeout(console.log('End of timeout'), delay(5000));  // ???????
console.log('Start to do something else');