*在js中不同類型之間的運算,所得到結果的類型也會有所變化: string + number = string string + boolean = string string + undefiend = string number + boolean = number number + undef ...
*在js中不同類型之間的運算,所得到結果的類型也會有所變化:
string + number = string
string + boolean = string
string + undefiend = string
number + boolean = number
number + undefiend = NaN
boolean + undefiend = NaN
總結一下就是:
所有與string類型數據進行運算得到的結果一定是字元類型;
與number類型數據進行運算時,會將其它非string類型數據轉換為number,若轉換成功,則結果為number,轉換不成功則為:NaN;
而boolean類型數據進行運算時,會將自身轉換為number類型,再與其它的數據進行運算,其運算規則與number一致;
*在js中有一個用來判斷數據是否是數字的函數:isNaN(數據) 結果為ture 則不是數字 為false,則是數字
*在js中同樣有數據類型的強制轉換
toString() 將任何數據轉換為字元串
用法:數據.toString()
parseInt() 將數據轉換為整型的number類型
用法:parseInt(數據)
規則:從左到右進行轉換,當遇到一個不為數字字元時就停止轉換
parseFloat() 將數據轉換為浮點型的number類型
用法:parseFloat(數據)
規則:從左到右進行轉換,當遇到一個不為數字和小數點的字元時就停止轉換,並且在小數點後又遇到小數點也停止轉換
Number() 將數據轉換為number型
用法:Number(數據)
規則:只要包含了非數字字元,返回NaN
1.關於邏輯與、邏輯或的短路:
邏輯與:只要一個條件為假,整個表達式的值都為假,並且不會去判斷後面的條件
邏輯或:只要第一個條件為真,整個表達式的值為真,並且不會去判斷後面的條件
2.關於小數數值的精確度問題
3.關於位運算符
按位與:將操作數轉換為二進位,進行運算的兩位數同時為1,結果才為1
按位或:將操作數轉換為二進位,進行運算的兩位數有一個為1,結果就為1
按位異或:進行比較的數據只有一個為1時
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js運算符</title> </head> <body> <script type="text/javascript"> /*1.關於邏輯與、邏輯或的短路: 邏輯與:只要一個條件為假,整個表達式的值都為假,並且不會去判斷後面的條件 邏輯或:只要第一個條件為真,整個表達式的值為真,並且不會去判斷後面的條件*/ // 1.1價格打折:用戶輸入消費金額,如果消費的金額>=100,享受八折,輸出實際付費金額 var price = prompt("請輸入消費金額:"); price >= 100 && (price = price *0.8);//邏輯與短路 console.log(price); // 1.2請用戶輸入一段留言:如果輸入了,就輸出留言的內容,否則就輸出:“主人很懶 // 空字元串 可以當false使用 // undefined、0、0.0、"" var msg = prompt("請輸入留言:"); var result = msg || ("主人很懶什麼都沒留下");//邏輯或短路 console.log(result); // 2.關於精確度問題 // 買菜找零 var change = 2 - 1.6; console.log("找零:"+ change); // 四捨五入解決精確度誤差,toFixed(n) n為保留幾位小數 change = change.toFixed(2); console.log("四捨五入後:"+ change); /*3.關於位運算符 按位與:將操作數轉換為二進位,進行運算的兩位數同時為1,結果才為1 按位或:將操作數轉換為二進位,進行運算的兩位數有一個為1,結果就為1 按位異或:進行比較的數據只有一個為1時 值才為1*/ // 3.1判斷數字與1做按位與,最後一位為1為奇數,0為偶數 console.log((10 & 1) == 0);//ture偶數 console.log((9 & 1) == 0);//false奇數 // 3.2按位或:向下取整,將數據轉換成二進位,且小數會被轉換為整數 var num3 = 6.5; console.log(num3 | 0);//將6.5轉換為整數6,然後與0按位或 最後的結果是6 // 3.3交換兩個數的值 var num1 = 5,num2 = 3; num1 = num1 ^ num2; num2 = num1 ^ num2; num1 = num1 ^ num2; console.log(num1,num2); </script> </body> </html>
(*註意:運行代碼時,需要將暫時不驗證的代碼註釋掉,或者將需要驗證的到嗎複製粘貼到其它文件中進行運行)