1. 程式人生 > >【JS】基礎篇之帶你走進JavaScript的運算子

【JS】基礎篇之帶你走進JavaScript的運算子

前言

  每一種語言都有相對應的運算子,今天我們來看一下JS中的運算子。

巨集觀把控

  先來一張圖簡單瞭解一下JS中都有哪些運算子:
在這裡插入圖片描述

算術運算子

  1.“+”兩邊的運算元不是number型別的話,做連線操作;

  2.除“+”以外的其他算術運算子,如果兩邊的運算元不是number型別的話,會通過Number()函式,預設進行轉化,如果轉化不成功,最終的運算結果是NaN。舉例:

var num1 = 10;
var str1 = "15";
var str2 = "18";
var str3 = "18abc";

var r = num1 - str1;      //-5
r = str1 - str2;          //-3
r = str2 - str3;         //NaN

比較運算子

  1.運算子兩端,如果有一個數是number型別的話,那麼另外一個會自動通過Number()進行轉換,然後在進行比較,如果轉化失敗,結果為false。舉例:

console.log("11">10);       //true
console.log("abc">10);     //false

  2.如果運算子兩端都是字串的話,則比較每位字元的Unicode碼,再決定大小,舉例:

console.log("張三丰">"張無忌");       //false

  計算時,先比較“張”的Unicode碼,顯然是一樣的,然後是“三”和“無”的Unicode碼,通過"三".charCodeAt()

可得出“三”是19977,“無”是26080,所以得出為false。同理得

console.log("3">"10");         //true

邏輯運算子

  這裡涉及到一個短路邏輯,短路&&(當第一個表示式為假的時候,第二個表示式沒有必要執行了,結果肯定是假),短路||(當第一個表示式為真的時候,第二個表示式沒有必要執行了,結果肯定是真)

位運算子

  1.位運算子是將數字轉換成二進位制後進行運算;只做整數運算,如果是小數的話,則去掉小數位再運算

  按位 與 &

  1.語法:a & b

  2.特點:將 a 和 b 先轉換為二進位制,按位比較,對應位置的數字都為1的話,那麼該位的整體結果為1,否則就為0

  3.舉例:5 & 3 結果:1

  4.使用場合:任意數字與1做按位與操作,可以判斷奇偶性,結果為1,則為奇數,否則為偶數

  按位 或 |

  1.語法:a | b

  2.特點:將 a 和 b 先轉換為二進位制,按位比較,對應位置的數字,至少有一位為1的話,那麼該位的整體結果為1,否則就為0

  3.舉例:5 | 3 結果:7

  4.使用場合:任何小數與0 做 按位或 操作,可以快速轉換為整數(並非四捨五入)

  按位 異或 ^

  1.語法:a ^ b

  2.特點:將a 和 b 先轉換為二進位制,按位比較,對應位置的數字,相同時則整體結果為0,不同時則為1

  3.舉例:5 ^ 3 結果:6

  4.使用場合:快速交換兩個數字(整數) a ^= b,b ^= a,a ^= b

條件運算子

  就是平常瞭解到的一元運算子、二元運算子、三元運算子。

賦值和擴充套件運算子

  1.賦值運算子就是平常的=;

  2.擴充套件運算子就是+=、-=、^=等,如

a = a+1;

  可以寫為:

a += 1;

運算子優先順序

  在這裡插入圖片描述

總結

  這就是我們常見和常用的運算子,由這些運算子連線起來的式子就是表示式,不知道小編講解的是否清楚,有什麼疑問歡迎留言。