邏輯操作符:非(not)、與(and)、或(or)。
邏輯非
邏輯非由一個嘆號(!)表示,應用于任何類型。這個操作符有轉換功能,把操作數(shù)轉換成布爾值,然后再對其求反。返回結果只有真true和假false。
例子
alert(!false) ?; ? ? ? ? ?//true
alert(!“blue”); ? ? ? ? //false
alert(!0); ? ? ? ? ? ? ? ?//true
alert(!NaN); ? ? ? ? //true
alert(!“”); ? ? ? ? ? ? ?//true
alert(!12345); ? ? //false
總結:
1.如果操作數(shù)是一個對象,返回false
2.如果操作數(shù)是一個非空字符串,返回false
3.如果操作數(shù)是任何非0數(shù)值(包括Infinity),返回false
4.如果操作數(shù)是一個空字符串,返回true
5.如果操作數(shù)是數(shù)值0,返回true
6.如果操作數(shù)是數(shù)值null,返回true
7.如果操作數(shù)是數(shù)值NaN,返回true
8.如果操作數(shù)是數(shù)值undefined,返回true
邏輯與
邏輯與操作符(&&)表示。邏輯與操作符,屬于短路操作,如果第一個操作能夠決定結果,那么就不會再對第二個操作數(shù)求值。如果第一個操作數(shù)是false,那么第二個值無論是什么,結果都是false。
var result = true && false
x == 0 && y == 0 ? ? ?//只有x和y都為0,才會返回true.
邏輯與操作適應任何類型的操作數(shù),不僅是布爾操作。
規(guī)則如下
1.如果第一個操作數(shù)是對象,責返回第二個操作數(shù)
3.如果第二個操作數(shù)是對象,則只有在第一個數(shù)的數(shù)值結果為true的情況下才會返回該對象
4.如果倆個操作數(shù)都是對象,則返回第二個操作數(shù)
5.如果第一個操作數(shù)是null,則返回null
6.如果第一個操作數(shù)是NaN,則返回NaN
7.如果第一個操作數(shù)是undefined,則返回undefined
注意:不能在邏輯與操作中實用未定義的值,會報錯
邏輯或
邏輯或操作符由(||)表示。邏輯或操作符也是短路操作符,如果第一個操作數(shù)的求值結果為true,就不會對第二個操作數(shù)求值了,倆個操作數(shù)都為false,才會返回false.
如果有一個操作數(shù)不是布爾值,邏輯或不一定返回布爾值。
規(guī)則如下:
1.如果第一個數(shù)是對象,則返回第一個操作數(shù)
2.如果第一個操作數(shù)的求值結果為false,則返回第二個操作數(shù)
3.如果兩個操作數(shù)都是對象,則返回第一個操作數(shù)
4.如果倆個操作數(shù)都是null,則返回null
5.如果倆個操作數(shù)都是NaN,則返回NaN
6.如果倆個操作數(shù)都是undefined,則返回undefined
條件運算符
javaScript唯一一個三元運算符,寫成“?:”。
例如:x > 0 ? x : -x ? ? ? ? ? ? ?//求x的絕對值
解釋:如果x大于0,返回x;如果x小于0,則返回-x。
var max = (num1 > num2) ? num1:num2
賦值操作符
簡單的復制操作符(=)
復合賦值操作符
num += 10和 num = num+10一樣
乘賦值(*=)
除賦值(/=)
加賦值(+=)
減賦值(-=)
PS:感覺自己進度好慢,想快又會著急,一著急就記不住,冷靜一下。。。冷靜一下。。。
要熱愛它,哪怕只是假裝的熱愛,在它身上投入大量時間,等著漂亮的煙花盛開的那一刻,加油