1.運算符
邏輯運算符
!
- 非運算可以對一個布爾值進行取反,true變false false邊true
- 當對非布爾值使用!時,會先將其轉換爲布爾值然後再取反
- 我們可以利用!來將其他的數據類型轉換爲布爾值
&&
- &&可以對符號兩側的值進行與運算
- 只有兩端的值都爲true時,纔會返回true。只要有一個false就會返回false。
- 與是一個短路的與,如果第一個值是false,則不再檢查第二個值
- 對於非布爾值,它會將其轉換爲布爾值然後做運算,並返回原值
- 規則:
1.如果第一個值爲false,則返回第一個值
2.如果第一個值爲true,則返回第二個值
||
- ||可以對符號兩側的值進行或運算
- 只有兩端都是false時,纔會返回false。只要有一個true,就會返回true。
- 或是一個短路的或,如果第一個值是true,則不再檢查第二個值
- 對於非布爾值,它會將其轉換爲布爾值然後做運算,並返回原值
- 規則:
1.如果第一個值爲true,則返回第一個值
2.如果第一個值爲false,則返回第二個值
賦值運算符
=
- 可以將符號右側的值賦值給左側變量
+=
- a += 5 相當於 a = a+5
- var str = "hello"; str += "world";
-=
- a -= 5 相當於 a = a-5
*=
- a *= 5 相當於 a = a*5
/=
- a /= 5 相當於 a = a/5
%=
- a %= 5 相當於 a = a%5
關係運算符
- 關係運算符用來比較兩個值之間的大小關係的
>
>=
<
<=
- 關係運算符的規則和數學中一致,用來比較兩個值之間的關係,
如果關係成立則返回true,關係不成立則返回false。
- 如果比較的兩個值是非數值,會將其轉換爲Number然後再比較。
- 如果比較的兩個值都是字符串,此時會比較字符串的Unicode編碼,而不會轉換爲Number。
相等運算符
==
- 相等,判斷左右兩個值是否相等,如果相等返回true,如果不等返回false
- 相等會自動對兩個值進行類型轉換,如果對不同的類型進行比較,會將其轉換爲相同的類型然後再比較,
轉換後相等它也會返回true
!=
- 不等,判斷左右兩個值是否不等,如果不等則返回true,如果相等則返回false
- 不等也會做自動的類型轉換。
===
- 全等,判斷左右兩個值是否全等,它和相等類似,只不過它不會進行自動的類型轉換,
如果兩個值的類型不同,則直接返回false
!==
- 不全等,和不等類似,但是它不會進行自動的類型轉換,如果兩個值的類型不同,它會直接返回true
特殊的值:
- null和undefined
- 由於undefined衍生自null,所以null == undefined 會返回true。
但是 null === undefined 會返回false。
- NaN
- NaN不與任何值相等,報告它自身 NaN == NaN //false
- 判斷一個值是否是NaN
- 使用isNaN()函數
三元運算符:
?:
- 語法:條件表達式?語句1:語句2;
- 執行流程:
先對條件表達式求值判斷,
如果判斷結果爲true,則執行語句1,並返回執行結果
如果判斷結果爲false,則執行語句2,並返回執行結果
優先級:
- 和數學中一樣,JS中的運算符也是具有優先級的,
比如 先乘除 後加減 先與 後或
- 具體的優先級可以參考優先級的表格,在表格中越靠上的優先級越高,
優先級越高的越優先計算,優先級相同的,從左往右計算。
- 優先級不需要記憶,如果越到拿不準的,使用()來改變優先級。
2.流程控制語句
-
程序都是自上向下的順序執行的,
通過流程控制語句可以改變程序執行的順序,或者反覆的執行某一段的程序。- 分類:
1.條件判斷語句
2.條件分支語句
3.循環語句
條件判斷語句
- 條件判斷語句也稱爲if語句
- 語法一:
if(條件表達式){
語句…
}- 執行流程: if語句執行時,會先對條件表達式進行求值判斷, 如果值爲true,則執行if後的語句 如果值爲false,則不執行 - 語法二: if(條件表達式){ 語句... }else{ 語句... } - 執行流程: if...else語句執行時,會對條件表達式進行求值判斷, 如果值爲true,則執行if後的語句 如果值爲false,則執行else後的語句 - 語法三: if(條件表達式){ 語句... }else if(條件表達式){ 語句... }else if(條件表達式){ 語句... }else if(條件表達式){ 語句... }else{ 語句... } - 執行流程 - if...else if...else語句執行時,會自上至下依次對條件表達式進行求值判斷, 如果判斷結果爲true,則執行當前if後的語句,執行完成後語句結束。 如果判斷結果爲false,則繼續向下判斷,直到找到爲true的爲止。 如果所有的條件表達式都是false
- 分類: