为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输出hello world 和undefined?

为什么输出hello world 和undefined?

aluckdog 2019-05-25 15:38:30
alert(typeof((function(){alert('HelloWorld!');})()));
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

使用typeofparam首先会对param进行求值;在下面这个表达式中,
typeof(
(function(){
alert('HelloWorld!');
})()
)
显然,param就是
(function(){
alert('HelloWorld!');
})()
这是一个立即执行函数,也就是首先定义了下面的这个匿名函数,
function(){
alert('HelloWorld!');
}
然后用括号包起来直接进行调用,所以会弹出"HelloWorld!";因为没有return语句,所以这个方法执行完后的返回值是undefined,也就是下面的代码的执行结果为undefined
(function(){
alert('HelloWorld!');
})()
所以param就是undefined,typeofundefined的结果就是undefined,所以弹出undefined。
                            
查看完整回答
反对 回复 2019-05-25
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

function(){
alert('HelloWorld!');
}
没有返回值,所以typeof(function(){...})()为undefined
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信