操作運算符
1.+
var a = 1 + "a" +1 + 1; document.write(a)
輸出為:1a11
var a = 1 + 1 + "a" +1; document.write(a)
輸出為:2a1
運算會自左向右進(jìn)行;
任何類型的數(shù)據(jù)+字符串都會等于一個字符串.
- %
var num = 1 % 5; document.write(num)
輸出為: 1
1里面有0個5 吞彤,因此商=0夺颤,余下了1杰刽。
var num = 4 % 5; document.write(num)
輸出為: 4
4里面有0個5 绑榴,因此商=0,余下了4护蝶。
var num = 0 % 5; document.write(num)
輸出為: 0白嘁。
0 % 任何數(shù)都得0。
var a = 1; var b = a -- + -- a; document.write(b)
輸出為:0
原理:--a使得a變?yōu)?(第二行的兩個a都變?yōu)?)智什;0+0=0动漾。
比較運算符
var a = 1 > 2; document.write(a)
輸出為:false
var b = 1 == 1; document.write(b)
輸出為true
var a = NaN == NaN; document.write(a)
輸出為false
var b = 1 !=2; document.write(b)
!=的含義為:是否不等于
輸出為true
邏輯運算符
1.與運算符 &&:一定會返回結(jié)果
以下6個值轉(zhuǎn)化為布爾值為false:
undefined,false荠锭,null旱眯,NaN," "(空字符串)证九,0删豺。
在與運算中:如果只有兩個表達(dá)式,且如果第一個表達(dá)式的布爾值為true愧怜,那么就直接返回第二個表達(dá)式的值呀页;如果第一個表達(dá)式的布爾值為false,那么直接返回第一個表達(dá)式的值拥坛。
var c = 1 && 2; document.write(c)
返回2
var d = 0 && 2; document.write(d)
返回0
在與運算中:如果有多個表達(dá)式蓬蝶,那么會從左往右依次看表達(dá)式的布爾值,若一直為true則一直向前走渴逻,返回最后一個值疾党;如果遇到false,則返回false位置的表達(dá)式的值
var e = 1 && 1 && 2: document.write(e)
返回2
var f = 1 && 0 && 2; document.write(f)
返回0
&&有中斷作用惨奕,因此可以用作短路語句(可以像if一樣拿來作條件):
2 > 1 && document.write('I am handsome')
var = rear-end-data; rear-end-data && 一個會用到rear-end-data的語句
以上是短路語句的用法:先判斷&&之前的東西的真假(是否為空值)雪位,如果&&前的東西有意義,才會進(jìn)行&&后的操作
2.或運算符||
var a = 1 || 3; document.write(a)
返回1
var b = 0 || 3; document.write(b)
返回3
var c = 0 || false || 3; document.write(c)
返回3
與運算:第一個表達(dá)式的布爾值為true梨撞,則返回第一個表達(dá)式的值雹洗;第一個不為true,則向后看卧波,碰到true就停 时肿;如果所有表達(dá)式的布爾值全為false,則返回最后一個表達(dá)式的值港粱。
3.非運算符螃成! :把表達(dá)式轉(zhuǎn)換成布爾值再取反
var a = ! 123; document.write(a)
返回false
var b = !!123; document.write(b)
返回true
!!的作用是:取布爾值