假设 output 是一个函数,用来输出一行文本。下面这行语句输出结果是什么?
output(typeof (function() {output(“Hello World!”)})());
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 来源:慕课网
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