为什么这个Javascript代码返回undefined

Abh*_*hak -3 javascript

这是一个带有字符串的IIFE功能.内部函数没有采用字符串参数,因为它是undefined在控制台中打印

//jshint esnext: true
    
(function(string) {
  var s = setTimeout((string) => {
    console.log(string);
  }, 1000);
})("Hello World!");
Run Code Online (Sandbox Code Playgroud)

Pat*_*rts 6

因为setTimeout()不会使用任何参数调用其回调函数:

(function(string) {
  var s = setTimeout(() => {
    console.log(string);
  }, 1000);
})("Hello World!");
Run Code Online (Sandbox Code Playgroud)

或者,您可以将参数显式传递给回调函数,但这不是必需的:

(function(string) {
  var s = setTimeout((param) => {
    console.log(param);
  }, 1000, string);
})("Hello World!");
Run Code Online (Sandbox Code Playgroud)