javascript基礎(賦值運算子,關係運算子,相等運算子,三元運算子,運算子的優先順序,程式碼塊)(十)

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

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

1.賦值運算子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 	賦值運算子可以將一個值賦值給一個變數
			 	
			 		=
			 			- =可以將符合右側的值,賦值給符號左側的變數
			 		+=
			 			- a += x 等價於 a = a + x
			 		-=
			 			- a -= x 等價於 a = a - x
			 		*=
			 			- a *= x 等價於 a = a * x
			 		/=
			 			- a /= x 等價於 a = a / x
			 		%=
			 			- a %= x 等價於 a = a % x
			 	
			 * */
			
			var a = 10;
			
			//使a增加5
			//a = a + 5;
			//a += 5; // 等價於 a = a + 5;
			
			//a *= 5; // a = a * 5;
			
			//a /= 5; //a = a / 5;
			
			a %= 5 ; // a = a % 5;
			
			console.log("a = "+a);
			
			
		</script>
	</head>
	<body>
	</body>
</html>
2.關係運算子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 	關係運算子可以比較兩個值之間的大小關係
			 	
			 		> 大於號,比較符號左側的值是否大於右側的值
			 			如果關係成立,則返回true,否則返回false
			 		>= 大於等於,比較左側的值是否大於或等於右側的值	
			 			如果關係成立,則返回true,否則返回false
			 		< 小於號
			 		<= 小於等於
			 		
			 		如果對非數值型別進行關係運算,則會將他們轉換為Number然後在比較
			 * */
			
			
			//console.log(10 > 5); //true
			//console.log(4 > 5); //false
			//console.log(5 > 5); //false
			//console.log(5 >= 5); //true
			//console.log(6 >= 5); //true
			
			var result = 5 < 4; //false
			
			
			//1 < 0
			result = true < false; //false
			
			//1 < 2
			result = true < "2"; //true
			
			result = null < 5; //true
			
			//NaN < 5 NaN和任何值比較都是false
			result = undefined < 5; //false
			result = undefined > 5; //false
			result = undefined >= 5; //false
			
			result = 5 < "4"; //false
			
			/*
			 * 當關系運算子的兩側都是字串時,它不會將字串轉換為Number,
			 * 	而是會比較字串的Unicode編碼
			 * 
			 * 當字串中含有多個字元時,會逐位進行比較
			 * 	第一位和第一位比 第二位和第二位比 以此類推
			 * 	
			 * 通過這種方式,可以將文字按照字母順序進排序,但是對於中文來說意義不大,
			 * 	尤其在比較兩個數字型別的字串時,一定要注意,很有可能得到錯誤的結果
			 */
			
			
			
			result = "a" < "b"; //true
			
			result = "bc" < "be"; //true
			
			result = "abcdefghijk" < "b"; //true
			
			//0035 < 0034
			result = "5" < "4"; //false
			
			result = "5" < "40"; //false
			
			result = "中" > "國";
			
			result = +"5" < "40"; //true
			
			console.log("result = "+result);
			
		</script>
	</head>
	<body>
	</body>
</html>

3.相等運算子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * ==
			 * 	- 相等運算子,它可以用來判斷兩個值是否相等,如果相等,則返回true,否則返回false
			 * 	- 如果對兩個型別不同的變數進行相等比較,會先將其轉換為相同的型別,然後再比較
			 * 		(至於具體轉換為什麼型別,不定,但是大部分情況是轉換Number)
			 */
			
			//console.log(1 == 1); //true
			//console.log(1 == 2); //false
			
			//console.log(true == 1);//true
			
			//console.log(true == 2);//false
			
			//console.log("1" == true); //true
			
			//字串和布林值比時,都轉換為Number然後在比
			//console.log("2" == true); //flase
			
			//console.log(null == 0);//false
			
			//由於undefined衍生自null,所以這兩個型別的值做相等比較時會返回true
			//console.log(null == undefined);//true
			
			//NaN不和任何值相等,包括它自己
			//console.log(NaN == NaN); //false
			
			var a = NaN;
			
			//判斷a的值是否是NaN
			//console.log(a == NaN);
			/*
			 * 在JS中為我們提供了一個isNaN()函式,
			 * 	這個函式專門可以判斷一個值是否是NaN,如果是則返回true,否則返回false
			 */
			//console.log(isNaN(a));
			
			/*
			 * ===
			 * 	- 全等運算子,可以判斷兩個值是否全等,如果全等則返回true,否則返回false
			 * 	- 全等和相等的區別就是相等會做自動的型別轉換,而全等不會,
			 * 		使用全等時,如果兩個值的型別不同,直接返回false
			 */
			
			//console.log(1 === "1"); //false
			//console.log(true === "1"); //false
			//null和undefined相等,但是不全等
			//console.log(null === undefined); //false
			
			/*
			 * !=
			 * 	- 不等運算子,和相等相反,如果兩個值不等則返回true,否則返回false
			 * 	- 不等會對值進行自動的型別轉換,如果轉換後相等,它也認為相等
			 * 
			 * !==
			 * 	- 不全等運算子,檢查兩個值是否不全等,如果成立則返回true,否則返回false
			 *  - 不全等不會做自動的型別轉換,如果兩個值的型別不同,直接返回true
			 */
			//console.log(1 != 2);//true
			//console.log(1 != 1);//false
			//console.log(1 != "1");//false
			console.log(1 !== "1");//true
			
			
			
		</script>
	</head>
	<body>
	</body>
</html>

4.三元運算子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 	三元運算子(三目運算子)
			 		- 三元運算子需要三個運算元
			 		-?:
			 		-語法:
			 			條件表示式?語句1:語句2
			 		- 執行流程:
			 			- 三元運算子在執行時,會先對條件表示式進行求值判斷
			 				如果判斷結果為true,則執行語句1,並將執行結果返回
			 				如果判斷結果為false,則執行語句2,並將執行結果返回
			 * */
			
			//false?alert("語句1"):alert("語句2");
			
			//建立兩個變數
			var a = 60;
			var b = 75;
			var c = 40;
			//如果a的值大,則輸出a大,如果b的值的,則輸出b大
			//alert("b大");
			//alert("a大");
			//a > b ? alert("a大") : alert("b大") ;
			
			//獲取a和b之中的大值
			/*var max = a > b ? a : b;
			max = max > c ? max : c;*/
			
			//表示式儘量不要寫的太長,不方便閱讀
			var max = a > b ? ( a > c ? a : c) : (b > c ? b : c) ;
			
			console.log("max = "+max);
			
		</script>
	</head>
	<body>
	</body>
</html>
5.運算子的優先順序:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 	運算子的優先順序和數學中的類似,
			 		比如:先算乘除後算加減,也可以通過括號來改變運算的順序
			 	遇到優先順序不清楚,可以查詢優先順序的表,在表中,位置越靠上,優先順序越高,
			 		優先順序越高,越先運算,同一行的運算子優先順序一樣,優先順序一樣從左往右計算
			 	但是這個優先順序的表,不需要記憶,如果遇到拿不準,則使用()來改變優先順序	
			 * */
			
			var result = ( 1 + 2 ) * 3;
			
			/*
			 * 如果|| 和  &&的優先順序一樣,或者 ||大 
			 * 		則從左向右算,結果是 3
			 * 
			 * 如果 && 的優先順序高,則應該先算後邊的
			 * 		結果是:1  
			 */
			result = 1 || (2 && 3);
			
			console.log("result = "+result);
			
			
		</script>
	</head>
	<body>
	</body>
</html>

6.程式碼塊:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
		
		/*
		 	在JS中,我們可以使用{}來為語句進行分組
		 		可以將同一組的語句放到一對{}中
		 	一個大括號中的語句,我們稱為是一個程式碼塊,程式碼塊後邊不用加;	
		 	
		 	JS中的程式碼塊僅有分組的作用沒有其他的作用,程式碼塊中的內容對於程式碼塊外是可見的
		 * */
			
			/*{
				alert("hello");
				console.log("你好");
				document.write("哈哈哈哈哈哈");
			}
			
			{
				alert("hello");
				console.log("你好");
				document.write("哈哈哈哈哈哈");
			}*/
			
			{
				
				var a = 123;
			}
			
			console.log(a);
			
			
		</script>
	</head>
	<body>
	</body>
</html>




相關文章