JavaScript的运算符
赋值、加减乘除、余除
“=、+、-、*、/、%”分别代表“赋值、加减乘除、余除”
xx = 3 + 2; // xx的值为 5 xx = 3 - 2; // xx的值为: 1 xx = 3 * 2; // xx的值为: 6 xx = 3 / 2; // xx的值为: 1.5 xx = 3 % 2; // xx的值为: 1
增1减1
“++a、a++、--a、a--”分别代表“前增1、后增1、前减1、后减1”
a = 5; b = a++; // a的值为: 6、b的值为: 5 a = 5; b = ++a; // a的值为: 6、b的值为: 6 a = 5; b = a--; // a的值为: 4、b的值为: 5 a = 5; b = --a; // a的值为: 4、b的值为: 4
字符串运算
作为运算符只有“+”来连接2个字符串,至于查找、截取等功能要用字符串类的各种方法实现。注意:字符串与其它类型相加时,其它类型将被自动转换为字符串类型,再相加。
xx = "abcd" + "xyz" //xx的值为: "abcdxyz" xx = "1234" + 56 //xx的值为: "123456" var dd = new Date(1999, 11, 31); xx = "今天是=" + dd //xx的值为: "今天是=Fri Dec 31 00:00:00 UTC+0900 1999"
逻辑运算符
“&&、||、!”分别表示“与、或、非”
if ((1 <= mon) && (mon <= 12)) { alert("xx is between 1 and 12."); } if ((xx == "ABC") || (xx == "abc")) { alert("xx is ABC."); } if (!(xx == 5)) { alert("xx is not five."); }
位运算符
“&、|、^、~”分别表示“与、或、异或、取反”
xx = 0x87654321 & 0xffff0000; // xx的值为 0x87650000 xx = 0x87654321 | 0xffff0000; // xx的值为 0xffff4321 xx = 0xffff0000 ^ 0xff00ff00; // xx的值为 0x00ffff00 xx = ~0xffff0000; // xx的值为 0x0000ffff
“<<、>>、>>>”分别表示“左移、右移、补0右移”
xx = 0x12345678 << 8; // xx的值为 0x34567800 xx = 0x12345678 >> 8; // xx的值为 0x00123456 xx = 0x87654321 >> 8; // xx的值为 0xff876543 xx = 0x87654321 >>> 8; // xx的值为 0x00876543
比较运算符
相等(==)、不等(--)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)
if (xx == 5) { alert("xx is five."); } if (yy != "ABC") { alert("yy is not ABC."); } if (xx == null) { alert("xx is Null."); } if (yy != null) { alert("yy is not Null."); } if (xx < 123) { alert("xx is smaller than 123"); }
当类型不一致时,将被自动转换为字符串类型。如果不需要自动转换,可以用“===和!==”来代替“==”和“!=”。
if ( 123 == 123 ) { ... } // true(真) if ("123" == "123") { ... } // true(真) if ("123" == 123 ) { ... } // true(真) if ( 123 == "123") { ... } // true(真) if ( 123 === 123 ) { ... } // true(真) if ("123" === "123") { ... } // true(真) if ("123" === 123 ) { ... } // false(假) if ( 123 === "123") { ... } // false(假)
复合运算符
加减乘除并赋值(+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>=)
xx += 5; // xx = xx + 5; xx -= 5; // xx = xx - 5; xx *= 5; // xx = xx * 5; xx /= 5; // xx = xx / 5; xx %= 5; // xx = xx % 5; xx &= 0xff; // xx = xx & 0xff; xx |= 0xff; // xx = xx | 0xff; xx ^= 0xff; // xx = xx ^ 0xff; xx <<= 8; // xx = xx << 8; xx >>= 8; // xx = xx >> 8; xx >>>= 8; // xx = xx >>> 8;
条件运算符
“exp1 ? exp2 : exp3”这和Ifelse语句相同功能但用法不同,这是运算符。
yy = (xx >= 5) ? "big" : "small"; //若xx>5,则yy的值为: "big"; 若xx<=5,则yy的值为: "small"
逗号分隔符
主要用于函数的参数之间分隔,for循环语句中也用来分隔语句。
for (i = 0, j = 0; i < 10; i++) {
......
}
null时注意
当对象为null时,该对象的方法和属性都不能使用,要特别注意。
运算符的优先顺序
优先顺序 | 运算符 |
---|---|
↑
高
低
↓
|
数组([]) 括弧(( )) |
増1減1(++ --) 负号(-) 取反(~) 非(!) | |
乗除余(* / %) | |
加減(+ -) 文字列连接(+) | |
位移(<< >> <<<) | |
比较(< <= >= >) | |
比较(== != === !==) | |
AND(&) | |
XOR(^) | |
OR(|) | |
与(&&) | |
或(||) | |
条件(? :) | |
赋值(=) 复合(+=等) | |
逗号(,) |