JS隨手記——三元表達式

表達式Q ? A : B

在 Q 求值爲 TRUE 時的值爲 A ,在 Q 求值爲 FALSE 時的值爲 B 。

例如下面判斷奇數偶數的例子:

		var numbuer = 5 ;
		if(numbuer%2!=0){
		    document.write("該數爲奇數");
		}
		else{
		    document.write("該數爲偶數");
		}

改寫爲三元表達式時爲:

		var numbuer = 5 ;
		document.write("該數爲" + numbuer%2!=0 ? "奇數":"偶數");

但是發現輸出結果僅剩一個奇數,這就是運算的優先級問題,出錯的原因是 ?的運算優先級比 + 低,所以實際運行的語句是

		document.write("該數爲true" ? "奇數":"偶數");

而在JS中,字符串是爲真的,所以會輸出奇數。

所以上述應改爲:

		var numbuer = 5 ;
		document.write("該數爲" + (numbuer%2!=0 ? "奇數":"偶數"));

其中可以記住的是:

不是false, 0, undefined, NaN, “” or null,js都認爲是true;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章