js惰性求值中 true&&字符串&&true 為什么會(huì)輸出true?
在書上看到j(luò)s惰性求值的一段介紹:如果javascript引擎在一個(gè)邏輯表達(dá)式中遇到一個(gè)非布爾類型的操作數(shù),那么該操作數(shù)的值就會(huì)成為該表達(dá)式所返回的結(jié)果。列如:
true || "something";輸出 true
true && "some<愛尬聊_百科>thing";輸出 "something"
true&&"something"&&true;輸出true
對(duì)于第三個(gè)輸出true不理解,按照書上的介紹不是應(yīng)該輸出"something"嗎?
還有我自己測(cè)試中將true && "something" 的順序顛倒變成
"something"&&true; 輸出"true",這又是為什么呢?
ycgq1982 14小時(shí)前
false || something 返回 ‘something’ ,因?yàn)榕袛嗔?’something‘是才能有答案
黃建荃 14小時(shí)前
true && something || true , 返回什么? 當(dāng)然是 something, 因?yàn)榕袛嗟?something 的時(shí)候,整個(gè)語(yǔ)句就已經(jīng)有答案了 ,因此返回 something
紗塵幔桃生1818535059 14小時(shí)前
第三句,同理,判斷了 第一個(gè) true ,第二個(gè) something,仍然不能確定整體是否為 true ,需要判斷第三個(gè)條件,自然返回 true
360U3212267496 14小時(shí)前
希望我講明白了。
折失的誓言群 14小時(shí)前
先看第一句 true || "something" , || 或字符,遇到 true ,條件成立,返回true
紗塵幔桃生1818535059 14小時(shí)前
第二句,&& 且字符,碰到 true ,但條件不一定成立,需要判斷后面的, 那么就返回后面的值 也就是 something
