javascript - 关于prompt的返回值问题?

查看:120
本文介绍了javascript - 关于prompt的返回值问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

使用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,问题出在赋值这里转换了类型。所以要得到你的结果可以这样。

    var username = prompt("请输入您的姓名:");
    
    if(username != '' && username != null){
        document.write("你好"+username);
    } else {
        document.write("bye");
    }

这篇关于javascript - 关于prompt的返回值问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆