首页 > 试题广场 >

假设 output 是一个函数,输出一行文本。

[单选题]

假设 output 是一个函数,用来输出一行文本。下面这行语句输出结果是什么?

output(typeof (function() {output(“Hello World!”)})());

  • undefined Hello World!
  • Object
  • string
  • function
  • Hello World! undefined
推荐
E
1.先立即执行匿名函数,输出Hello World!
2.函数执行后无返回值,则输出未定义
编辑于 2016-12-16 17:05:24 回复(10)
任何函数执行完一次,如果没有 return 返回值和声明变量接受返回值,都会立即消失,永远找不到值!
发表于 2017-03-26 23:40:17 回复(5)
这样可能更好理解一点
alert(typeof((function(){
    alert('Hello World!'); 
    })() 
));

发表于 2017-03-31 10:14:54 回复(4)
只有我一个人看成是立即执行typeof么。。 typeof(xxx)()
发表于 2017-05-22 09:26:13 回复(18)
E 1.先立即执行匿名函数,输出Hello World! 2.函数执行后无返回值,则输出未定义
发表于 2017-03-07 19:51:27 回复(0)
不仅仅是一个匿名函数,在后面还跟了一个(),所以这也是一个立即执行函数,然后才是函数没有return,默认返回undefined。
发表于 2018-01-18 14:37:14 回复(1)

自调函数的应用(这种函数的好处首先使用自调匿名函数不会产生任何全局变量,但是函数无法重复执行,适合执行一些一次性的或初始化的任务。):

(function(){
    alert('this is a test'); })();

当需要传参的时候

(function(a,b){
    alert(a+b); })(3,5);
发表于 2017-01-04 08:57:34 回复(0)
output(
    typeof  //最后,typeof undefined  还是undefined
        (function(){ //然后,立即执行函数里没有用return来返回值,函数的结果是undefined
            output(“Hello World!”) //首先,先输出 'Hello World!'
        })()
);

发表于 2022-01-18 10:37:51 回复(0)
先执行IIFE函数,输出 Hello World!
函数无返回值时,默认返回undefined。typeof(undefined) = undefined,所以最后打印出 undefined
发表于 2019-07-16 21:24:24 回复(1)
自调函数的应用(这种函数的好处首先使用自调匿名函数不会产生任何全局变量,但是函数无法重复执行,适合执行一些一次性的或初始化的任务。): (function(){ alert('this is a test'); })(); 当需要传参的时候 (function(a,b){ alert(a+b); })(3,5);
发表于 2017-01-26 12:01:46 回复(0)

题目错误地使用了中文双引号 “”,导致语法错误,无解...

发表于 2017-08-02 17:23:36 回复(1)
先执行立即执行函数,里面的output函数输出"Hello World!",由于立即执行函数没有返回值,于是返回undefined,于是typeof undefined返回undefined,于是输出undefined
发表于 2022-05-09 23:59:13 回复(0)
立即执行函数 先执行log中的内容,没有return 返回undefined,做错的原因忘了立即执行函数有return
发表于 2021-11-25 10:53:34 回复(0)
转载关于typeof
typeof 1 // "number"
typeof '1' // "string"
typeof true // "boolean"
typeof Symbol(1) // "symbol"
typeof {} // "object"
typeof [] // "object",小坑
typeof function(){} // "function"
typeof Symbol(1) // "symbol"
typeof undefined // "undefined"
typeof null // "object",出名的坑

作者:前端绅士
链接:https://www.imooc.com/article/69870
来源:慕课网


发表于 2021-06-26 21:35:34 回复(0)
这题主要考察的是,JS运算符的优先级,()的优先级是16,typeof是的优先级是14,所以执行匿名函数,在执行操作符typeof
发表于 2021-06-24 18:53:59 回复(0)
output(typeof (function() {output(“Hello World!”)})());
分解如下: 1  output(typeof A)    A——>(function() {output(“Hello World!”)})() 
2  (B)()      B——>function() {output(“Hello World!”)}
3  function() {C}     C——>output(“Hello World!”)
4  先打印Hello World!,第三步的函数没有返回值,即第二步的立即执行函数没有返回值,所以第一步会打印undefined。
5  综上Hello World! undefined  

发表于 2020-08-11 16:51:04 回复(0)
先执行匿名函数,输出Hello World,然后如果不写return ,默认返回undefined
alert( typeof((function(){  var str ='hello world'  alert(str);   return str; })() 
)) 
这样就好看多了,
发表于 2018-10-29 17:51:05 回复(0)
因为是立即执行函数,所以先执行匿名函数那块,容易误以为输入字符串"Hello World!"后,然后typeof 判断的值为"Hello World"然后为string输出,却忘了匿名函数是依赖return返回值的,没有返回值的默认返回值为undefined,typeof undefined为"undefined",所以再输出文本"undefined",先输入文本字符串"Hello World";再输出字符串"undefined"
编辑于 2022-10-05 11:15:45 回复(0)
typeof会检测函数return的类型,所以会先等立即执行函数执行完,但是此立即执行函数没有return,所以为undefined
发表于 2022-08-20 16:38:09 回复(0)
output(
    typeof (function() {
        output(“Hello World!”)}
    )()
);
执行外部 output 等待里面执行完毕
里面需要执行typeof 等待立即执行函数执行返回
立即执行函数里面执行内部output
输出 Hello World!
立即执行函数没有 return 所以返回undefined
typeof undefined 返回 undefined
最后输出 undefined
结果就是Hello World! undefined
发表于 2022-05-14 14:01:48 回复(0)
先执行立即执行函数,再关注函数返回值
发表于 2022-03-30 22:55:05 回复(0)