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

為什麼答案中的 if 不用限定條件?

這題我這樣子寫:

function openWindow(){
        var test1=confirm("确定打开新窗口吗?");
        if(test1==true){
            var test2=prompt("请输入一个网址:","http://www.imooc.com/");
            window.open(test2,"_blank","width=400,height=500,menubar=no,toolbar=no");
        }
}

而答案這樣寫:

function openWindon(){    
    if(confirm("确定打开新窗口吗?")){    
        var url = prompt("请输入一个网址","http://www.imooc.com/");    
        window.open( url,"_blank","toolbar=no, menubar=no, width=400, height=500");    
    }    
}

為什麼答案可以在 if 直接寫"(confirm("确定打开新窗口吗?"))",而不用像我一樣限定條件((test1==true))?

提问者:sz_yeefun 2016-08-17 21:36

个回答

  • 慕粉3803372
    2016-08-17 21:52:45
    已采纳

    confirm("确定打开新窗口吗?")  confirm元素使用时出现一个窗口选择确定和取消,选择‘确定’自动赋予confirm返回值为true,选‘取消’则返回值为false,if()中如果没有限定条件,如confirm=true或者confirm=false,默认的判断条件是if(t),参数t是否为真

  • 月下听泉
    2016-08-17 22:10:49

    因为confirm()返回的是布尔值啊,只有True和False两种,如果点击确定的话返回True,那么“confirm("确定打开新窗口吗?")”就是真值,if括号里为真,自然就通过了。

  • 星河昴
    2016-08-17 21:55:01

    你的答案是把confirm()返回的值赋给test1,然后交给if判断。而答案则是省去了这些步骤。

    你的答案可以省略为

    var test1=confirm("确定打开新窗口吗?");

    if(test1){

        //Do something...

    }

    然后省略为标准答案

    if(confirm("确定打开新窗口吗?")){

        //Do something...

    }


    路过回答一下……