问答详情
源自:2-7 编程练习

JS编程练习问题为什么==ture时候程序不运行,改成!=null就可以了呢?

function openWindow(){
        var btnopen=prompt("是否打开该网站?","www.imooc.com");
        if(btnopen==ture){
            window.open('http://www.imooc.com','_blank','width=400px;height=500px,menubar=no,toolbar=no');
        }
        else{
            alert("再见!")
        }

当我的代码是这样的时候,只显示消息对话框,点击确定,无法弹出新网页。

function openWindow(){
        var btnopen=prompt("是否打开该网站?","www.imooc.com");
        if(btnopen!=null){
            window.open('http://www.imooc.com','_blank','width=400px;height=500px,menubar=no,toolbar=no');
        }
        else{
            alert("再见!")
        }

当代码中的btnopen==ture改成btnopen!=null时候,对话框出现时,点击确定就会弹出新网页,这是为什么?

提问者:顾五丑 2016-03-30 16:07

个回答

  • lovt
    2016-03-30 16:15:53
    已采纳

    true 不等同于null  null是无返回   任何有返回都是!null  但不一定是true

  • 策神
    2016-03-30 19:03:14

    在这里你得明白 prompt()返回的类型是什么,在JavaScript入门篇 2-4里已经说得很明白,1. 点击确定按钮,文本框中的内容将作为函数返回值  2. 点击取消按钮,将返回null,这里并没说有布尔类型,而true是布尔类型 ,所以if(btnopen==ture){} 这种写法不管你点击确定还是取消,都只会弹出alert("再见!")警示框,而不会弹出新窗口。



  • Lilah
    2016-03-30 16:38:10

    prompt("是否打开该网站?","  //点击确定返回的内容为prompt提问消息对话框的文本框中的内容"www.imooc.com") 输入的是字符串或数值,所以返回值不能是布尔值的true

  • Will01
    2016-03-30 16:26:13

    prompt("是否打开该网站?","  //点击确定返回的内容为prompt提问消息对话框的文本框中的内容"www.imooc.com",并不是返回true.

    点击“取消”返回的内容是null

  • qq_DXQ_0
    2016-03-30 16:15:31

    true