「前端架構師30天快速掌握js07」之表達式和運算符知識點詳解
此篇文章講解目錄:
算術運算符
自增與自減
關係運算符
對象運算符
邏輯運算符
算術運算符
算術運算符包括:+-*/%;
+(加號)
對數字進行代數求和
對字元串進行連接操作
將一個數值轉換成字元串
-(減號)
對操作數進行」取反」操作
對數字進行減法操作
將字元串轉換成數值
*和/(乘除)
對兩個運算數進行乘法(除法)運算
%(求余/求模)
返回兩個除數的餘數
賦值操作符
=:賦值
+=:加賦值
-=:減賦值
*=:乘賦值
/=:除賦值
%=:取余賦值
自增與自減
功能
++ 對唯一的運算數進行遞增操作(每次加1)
-- 對唯一的運算數進行遞減操作(每次減1)
規則
運算數必須是一個變數,數組的一個元素或者對象的屬性
如果運算數是非數值的則運算符將它轉成數值;
Advertisements
轉換規則是,調用用Number,根據轉后的值,再次進行運算
++i和i++是完全兩回事符號位置決定運算結果
++i運算數之前,先進行遞增(遞減)操作,再進行求值;
i++運算數之後,先求值,再進行遞增(遞減操作;)
關係運算符
運算符
<
如果A小於B,則返回true,否則返回值為false;
<=
如果A小於等於B,則返回值為true,否則返回false
>=
如果A大於等於B,返回true,否則返回值為false
>
如果A大於B,則返回true,否則返回值為false
操作規則
數值與數值的比較,比較他們的代數值;
僅一個運算數是數值,將另一個運算數轉換成數值,並比較他們的代數值;
字元串間的比較,逐字元比較他們的Unicode數值;
Advertisements
如果一個操作數是數值,則將另一個操作數轉換為一個數值,然後執行數值比較;(只要有一個是數值,另外一個無論什麼值,都會最終轉為數值后再比較)
運算數既非數字也非字元串,返回值為fals e;
與NaN比較,返回值是false;
等值關係運算(==和===)
== 比較兩個運算數的返回值看是否相等
!= 比較兩個運算數的返回值看是否不想等;
=== 比較兩個運算數的返回值以及數據類型是否相同;
!== 比較兩個運算數的返回值以及數據類型是否不相同
比較原則
值類型間比較,只有數據類型相同,且數值相等時才能夠相同;
值類型與引用類型比較,肯定不相同
引用類型間的比較,比較他們的引用值(內存地址)
對象運算符
In 判斷左側運算數是否為右側運算數的成員;
Instancesof 判斷對象實例是否屬於某個類或構造函數
New 根據構造函數創建一個新的對象,並初始化該對象
Delete 刪除指定對象的屬性,數組元素或變數
.及[] 存取對象和數組元素
() 函數調用,改變運算運算符優先順序等;
邏輯運算符
!邏輯非:取反
如果運算數的值為false則返回true,否則返回false;
連續使用兩次,可將任意類型轉為布爾類型值;
&&邏輯與
第一個操作數的對象,返回第二個操作數
第二個操作數是對象,如果想返回第二個對象,第一個必須為true;
如果兩個操作數都是對象,第一個是true,則返回第二個操作數;
第一個操作數是null,返回null
第一個操作數是NaN,返回NaN
第一個操作數是undefined,返回undefined
||邏輯或
兩個操作數都是false的時候才為false;第一個操作數是true,則返回第一個數;無需對第二個值判斷了,已經可以確定為true;如果第一個值為false的時候,返回第二個數;因為第一個已經是false了,值取決於第二個值,所以返回第二個值;
第一個操作數是對象,返回第一個操作數
第一個操作數值為false,返回第二個操作數
兩個操作數都是對象,返回第一個操作數
兩個操作數都是null,返回null;
兩個操作數都是NaN,返回NaN;
兩個操作數都是undefined,返回undefined