Javascript || && 運算符

1.

a = a || "defaultValue";  

2.

if(!a){  
    a = "defaultValue";  
}

3.

if(a == null || a == "" || a == undefined){  
    a = "defaultValue";  
}  
這三種寫法是等價的

在javascript中,數據類型可以分爲“真值“和”假值“。下表羅列一些常見的數據類型轉換爲bool時的值

數據類型 轉換爲bool後的值
null
false
undefined false
0 false
""(空字符串) false
Object true
function true
1 true
0、1之外的數字 true
字符串 true
由於javascript是弱類型語言,所以在javascript中這兩個表達式可能跟其他語言(比如java)中不太一樣。

在javascript中

"&&"運算符運算法則如下:

如果&&左側表達式的值爲真值,則返回右側表達式的值,否則返回左側表達式的值。

var i = "" && "真值";     //i=""
i = "真值" && "其他真值"; //i="其他真值"
i = "真值" && "";         //i=""


"||"運算符的運算法則如下:

如果||左側表達式的值爲真值,則返回左側表達式的值,否則返回右側表達式的值。

var i = "" || "真值";     //i="真值"
i = "真值" || "其他真值"; //i="真值"
i = "真值" || "";         //i="真值"


下面運用||、&&來簡化程序:

	var parameter = "";
	function test(parameter){
		//return 真值
		return true;
	}

	//真值操作
	function operate1(parameter){
		return "真值操作";
	}

	//假值操作
	function operate2(parameter){
		return "假值操作";
	}

	var result = test(parameter) && operate1(parameter);
	result = test(parameter) || operate2(parameter);

	//等價於
	result = test(parameter) ? operate1(parameter) : operate2(parameter);

	alert(result);//真值操作

	//也等價於
	if(test(parameter)){
		result = operate1(parameter);
	}else{
		result = operate2(parameter);
	}

	alert(result);//真值操作
以上主要介紹了javascript的主要邏輯值

1.數字除了1,0外都是true
2.字符串除了空字符串外都是true
3.function 和 object都是true
4.null 和 undefined都是false
5.1是true 0是false

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