if(open1==ture)和if(open1="ture")和if(open1)在下面代碼中的表現(xiàn)?
可以發(fā)現(xiàn)
if(open1==ture)和if(open1)效果是等同的,而if(open1="ture")貌似是錯(cuò)誤的表達(dá)。有大神幫忙解釋下嗎?
<!DOCTYPE html>
<html>
?<head>
? <title> new document </title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> ??
? <script type="text/javascript"> ?
? ??
function openWindow()
{
? ? ? ? var open1 = confirm('really open?');
? ? ? ? if (open1 ==true)
? ? ? ? {
? ? ? ? var open2 = prompt('open what?','http://idcbgp.cn');
? ? ? ? window.open(open2,'_blank','width=400,height=500,toolbar=no,menubar=no')
? ? ? ? }
? ? ?else
? ? ?{ }
}
? </script>?
?</head>?
?<body>?
? ? ? <input type="button" value="新窗口打開(kāi)網(wǎng)站" onclick="openWindow()" />?
?</body>
</html>
2016-04-11
if的判斷條件是一個(gè)布爾值
1:????open1 == true????是一個(gè)判斷 返回一個(gè)布爾值 如果confirm點(diǎn)是 他就等價(jià)于 true === true
2:????open1????這個(gè)值是你的confirm的返回值 你點(diǎn)否 他就是false 點(diǎn)是 他就是true?
注意 所以可以看出上面兩個(gè)是等價(jià)的
然后加點(diǎn)好玩的
3:????open1 == false????也是一個(gè)判斷 返回一個(gè)布爾值 通過(guò)和式1對(duì)比 他的結(jié)果 和上面兩個(gè)相反
4:????open1 = true????這就是一個(gè)賦值語(yǔ)句了 結(jié)束后open1值為true 所以條件恒成立
5:????open1 = false????和式4類(lèi)似 open1值為false 條件恒不成立
然后才是正經(jīng)的
6:????open1 = "true"????大部分語(yǔ)言認(rèn)為非零值都是true 所以這個(gè)結(jié)果open1值為字符串"true" 條件恒成立
7:????open1 = "false"????所以這個(gè)結(jié)果open1值為字符串"false" 條件恒成立
8:????open1 = 10????類(lèi)似的 這個(gè)也會(huì)是條件恒成立
9:????open1 = 0????重點(diǎn)來(lái)了 這個(gè)會(huì)使條件恒不成立???
好吧 其實(shí)這些都是不正經(jīng)的
正經(jīng)的是 因?yàn)橐恍v史原因才會(huì)有"=","=="的人類(lèi)語(yǔ)言語(yǔ)義歧義
所以 為了保險(xiǎn) 很多語(yǔ)言建議我們
????????把變量放在右側(cè) 比如 true == open1 因?yàn)?在誤寫(xiě)成 true = open1 是 他會(huì)因?yàn)椴环险Z(yǔ)法規(guī)范直接掛掉 所以可以及時(shí)的把問(wèn)題暴露出來(lái)
?
2016-04-11
="ture",變量就成了4個(gè)字節(jié)。新手,答錯(cuò)別罵我
2016-04-11
open1==ture
是等于,而
open1=“ture”
表示賦值,不能用在if語(yǔ)句里面
if(open1)
默認(rèn)表示open1==true
2016-04-11
=是賦值語(yǔ)句??? ==才是等于