新手学习问题

 function n() 
     {  var myname=prompt("请输入你的名字:");  
     if (myname!=null)   
     {alert("请输入名字");}  
     else 
      {alert("你好"+myname);} 
       }  

为什么在消息对话框内不论为不为空,都只显示if而不是当myname有输入时显示else语句呢?
新手入门,不懂求解

阅读 2.5k
5 个回答

补充一下楼上的,应该是:

当用户点击"确定"按钮后,文本输入框中的文字被返回.如果文本输入框中为空,则返回一个空字符串.如果用户点击"取消"按钮,则返回null.

https://developer.mozilla.org...

什么都不输的时候 myname 的值 是 '' 而不是null

null是没有
''是有 但是内容没有

遇到问题,可以先console.log(myname),看下为空时到底输出的是什么。
结论:点取消返回null,为空时点击确定返回""(空字符串)
所以根据你的需求,判断语句应该这么写:
if(myname== null || myname=="")

那你直接写if(myname){}else{}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏