唯一不理解:prompt的返回值竟然能作為if的判斷條件?。。??
prompt的返回值是:
?1)點擊確定按鈕,文本框中的內(nèi)容將作為函數(shù)返回值。當(dāng)內(nèi)容為空時,返回值為""
?2)點擊取消按鈕,將返回null
【要求】在輸入框輸入網(wǎng)址,當(dāng)輸入的網(wǎng)址既不為null也不為"",才打開網(wǎng)址。
【做法】
本來想到的判斷條件是:if(url != null && url != "") ?
后來發(fā)覺:就算直接把url作為if的判斷條件,即寫成if(url)也可以,和if(url != null && url != "")是完全等效的??!
【問題】if的判斷條件不是應(yīng)該Boolean類型的值嗎?根據(jù)最上面,prompt的返回值顯然不是Boolean類型,那為什么可以作為if的判斷條件
2015-10-06
if()判斷條件里必須產(chǎn)生個布爾值。js是弱語言,任何值都可以相互轉(zhuǎn)換,那么這里if()其實等價于if(Boolean())。
Boolean() 函數(shù)
當(dāng)要轉(zhuǎn)換的值是至少有一個字符的字符串、非 0 數(shù)字或?qū)ο髸r,Boolean() 函數(shù)將返回 true。
如果該值是空字符串、數(shù)字 0、undefined 或 null,它將返回 false。
這里的if(url),如果url如果為null或者是“”(空字符),都返回fasle。所以是可以這樣寫滴~~~
2015-10-14
url!=null成立說明這個表達(dá)式為“真”,而任何非0值都是“真”(即url這個變量也是“真”),所以url!=0與url的值是一樣的,可以互換。