使用prompt获取用户输入,关于返回值有如下问题,请指:
<script type="text/javascript">
var name = prompt("请输入您的姓名:");
if(name != null){
document.write("你好"+name);
}else{
document,write("bye");
}
</script>
问题如下:
1,当我不输入任何东西时,直接点击确定,输出“你好”二字,什么原因?
2,当我不输入任何东西,点击取消时,输出“你好null”,什么原因?
3,我看教程上写的是点击确定,将输入框中的内容作为返回值,当点击取消,返回值为null,但是这却与我以上代码的点击取消的结果相违背,什么原因呢?
谢谢
直接点击确定,由于你没有输入任何内容,获取内容的获取的就是
''
,prompt
函数返回值为''
,于是name
被赋值为''
,'' != null
。判断为真,于是就输出了你好
同理点击取消,
prompt
函数返回值为null
,同样赋值给了(更新一下,再次模拟,发现了问题所在,由于调试工具内直接模拟测试,由于name
,这是name
的值为字符串'null'
,'null'!=null
。判断为真,于是就输出了你好null
name
是关键字,赋值给name
会强制转换类型为字符串'null'
,导致了你我后续的问题)综上第一就是返回的输入框的内容,由于你没没输入内容,所以内容为
''
;第二就是你点击取消,返回的的确是null
,问题出在赋值这里转换了类型。所以要得到你的结果可以这样。