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

为什么这样子引用会出现多出一个undefined

<script>
function rec(){
    var mymessage=confirm("你是女士吗?")         ;
    if(mymessage==true)
    {
    	document.write("你是女士!");
    }
    else
    {
        document.write("你是男士!");
    }
  }    
document.write(rec())
</script>


正在回答

1 回答

undefined是函数调用的返回值(此处由于没有显式return,所以返回默认值undefined)

0 回复 有任何疑惑可以回复我~
#1

lmy_wy 提问者

不怎么明白,那为什么用按钮的方式去调用函数就不会
2015-09-25 回复 有任何疑惑可以回复我~
#2

Kusoku 回复 lmy_wy 提问者

这里rec()是一个函数调用表达式,既然是一个表达式就会返回一个值,最后一条语句执行,写入页面的就是undefined,可是在这个函数调用过程中,函数的内部逻辑也会执行一次页面写入("你是女士"或者"你是男士"),整段代码的执行相当于两次页面写入,用按钮绑定触发执行的只有函数内部逻辑,外面的document.write(rec())不执行,那肯定也就不会有后面的undefined了
2015-09-26 回复 有任何疑惑可以回复我~
#3

lmy_wy 提问者

非常感谢!
2015-09-26 回复 有任何疑惑可以回复我~
#4

小白r 回复 Kusoku

为什么在加载的时候document没有被执行 前几节课不是直接在script中的document直接执行了吗》》》按说这里不是显示 undefined 再点击按钮时 undefined变成文字 一次性输出两行文字
2015-10-22 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

为什么这样子引用会出现多出一个undefined

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信