javascript基礎(邏輯運算子)(九)

厚積薄發2017發表於2017-02-08

有程式碼編寫基礎的,自學時請略過

1.邏輯與,邏輯或:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
				! 邏輯非
					- 非可以對一個布林值進行取反操作
					- true變成false,false變true
					- 如果為一個值取兩次反和沒取一樣
					- 如果對一個非布林值進行取反操作,它會將其轉換為布林值然後再運算
						- 利用這個特點,我們可以為任意的資料型別去兩次反,來將其轉換為布林值,
							原理和Boolean()函式一樣
					
				&& 邏輯與
				|| 邏輯或
			 * 
			 * */
			
			var a = false;
			
			//a = !a;
			
			a = !!a;
			
			a = 1;
			
			/*
			 * 為a取兩次反,來將其轉換為布林值
			 */
			a = !!a;
			
			/*console.log("a = "+a);
			console.log(typeof a);*/
			
			
			var str = "hello";
			
			//轉換為布林值
			str = !!str;
			
			console.log("str = "+str);
			console.log(typeof str);
			
		</script>
	</head>
	<body>
	</body>
</html>


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 	&&
			 		- 邏輯與
			 		- &&可以對符號兩側的值進行與運算
			 		- 只有兩端都是true時,才會返回true。只有有一個false就會返回false。
			 		
			 	||
			 		- 邏輯或
			 		- ||可以對符號兩側的值進行或運算
			 		- 只要有一個true就會返回ture,如果兩端都是false才會返回false
			 		
			 * */
			
			//兩端都為true,則返回true
			var result = true && true;
			
			//只要有一個false,就返回false
			result = false && true;
			result = true && false;
			result = false && false;
			
			//console.log("result = "+result);
			
			/*
			 * JS中與運算是短路的與,如果第一個值是false,則不看第二個值
			 */
			//true && alert("看我出來不出來"); 第一個值為true,alert()會執行
			//false && alert("看我出來不出來"); 第一個值為false,alert()不會執行
			
			//兩端都是false,則返回false
			result = false || false;
			
			//只要有一個true,就返回true
			result = true || false;
			result = false || true;
			result = true || true;
			
			//console.log("result = "+result);
			
			/*
			 * JS中的或,是短路的或,如果第一個值為true,則不看第二個值
			 */
			//false || alert("看我出來不出來"); //第一個值為false,會看第二個
			true || alert("看我出來不出來"); //第一個值為true,不看第二個
			
			
			
		</script>
	</head>
	<body>
	</body>
</html>

特殊型別:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 	對於非布林值,做與或運算時,它會先將其轉換為布林值,然後在運算 最終返回變數的原值!
			 		
			 		- 非布林值的與運算:
			 			如果第一個值為false,則返回第一個。如果第一個值為true,則返回第二個
			 			
			 		- 非布林值的或運算
			 			如果第一個值為true,則返回第一個。如果第一個值為false,則返回第二個
			 		
			 		
			 * */
			
			//true && true
			//如果兩個值都為true,則返回後邊的
			var result = 2 && 10; //10
			
			//如果兩個值中有false,則返回靠前的false
			//false && true
			result = 0 && 1; //0
			//true && false
			result = 1 && 0; //0
			//false && false
			result = NaN && 0;
			
			result = "" && "hello";
			result = "你好" && null;
			
			//兩個值中有ture,則返回靠前的true
			//true || true
			result = 1 || 2; //1
			result = 2 || 1; //2
			//false || true
			result = 0 || 2; //2
			//true || false 
			result = 2 || 0; //2
			
			//兩個值都是false,則返回後邊的
			//false || false
			result = 0 || NaN; //NaN
			result = NaN || 0; //0
			
			result = 1 || ""; //1
			
			result = undefined || "hello"; //hello
			
			console.log("result = "+result);
			
		</script>
	</head>
	<body>
	</body>
</html>





相關文章