javaScript运算符
运算符和表达式:
算数运算符号:
+(加法)
var a=10+6;
结果:16
两个数字类型相加,得到一个数字类型。
一个数字类型和一个字符串类型相加,得到一个字符串类型。
-(减法)
var a=10-6;
结果:4
两个数字类型相减,得到一个数字类型。
一个数字类型和一个数字字符串相减,结果是一个数字,得到一个数字类型。
一个数字类型和一个非数字的字符串相减,得到结果nan的数字类型。
nan:非数字。
*(乘法)
var a=10*6;
结果:60
/(除法)
var a=10/6;
结果:1.67
两个数字类型相除,得到一个数字类型。
一个数字类型和一个数字字符串相除,结果是一个数字,得到一个数字类型。
一个数字类型和一个非数字的字符串相除,得到结果nan的数字类型。
0作为除数 结果Infinity(无限大),得到一个数字类型。
%(取余,浮点数不会转成整数四舍五入取余,php里浮点数会转成整数在取余)
取余结果的正负号只跟除数有关。
用于被整除的时候,还用于求一段范围
var a=10%6;
结果:4
a++;
结果:2
var a=2;
a--;
结果:1
赋值运算符号:
=(赋值)
var a=6;
结果:6
+=(加法运算完在赋值)
var a=1;
var a+=a;
结果:a=a+a 2
-=(减法运算完在赋值)
var a=1;
var a-=a;
结果:a=a-a 0
*=(乘法运算完在赋值)
var a=1;
var a*=a;
结果:a=a*a 1
/=(除法运算完在赋值)
var a=1;
var a/=a;
结果:a=a/a 1
%=(求得余数在赋值)
var a=1;
var a%=a;
结果:a=a%a 0
条件运算符号:
>(大于)
var a=1;
var b=2;
var c=a>b;
结果:false
<(小于)
var a=1;
var b=2;
var c=a<b;
结果:true
==(等于,只判断值是不是一致,不判断数据类型)
var a=1;
var b=2;
var c=a==b;
结果:false
!=(不等于,只判断值是不是一致,不判断数据类型)
var a=1;
var b=2;
var c=a!=b;
结果:true
>=(大于等于)
var a=1;
var b=2;
b>=a;
结果:true
<=(小于等于)
var a=1;
var b=2;
b<=a;
结果:false
===(不管值还是类型全部一致)
var a=1;
var b="1";
b==a;
结果:false
!==(不管值还是类型全部不一致)
var a=1;
var b="2";
b!==a;
结果:true
逻辑运算符号:
&&(与,一假全假)
var a=0;
var b=(a>0&&a==0);
结果:false;
||(或,一真全真)
var a=0;
var b=(a>0||a==0);
结果:true;
易发生短路:
var a=10;
if(a>=10||a++>10)
{
alter(a)
结果:10
}
^(异或,按位异或,相同为0,不同为1)
var a1 = 0x01; //0000 0001
var a2 = 0x00; //0000 0000
var b=a1^a2;
结果:00000001
!(非)
如果一个操作数是一个对象,返回true;
如果一个操作数是一个空字符串,返回false;
如果一个操作数是一个非空字符串,返回false;
如果一个操作数是一个数值0,返回false;
如果一个操作数是任意的非零字符,返回true;
如果一个操作数是null,返回false;
如果一个操作数是NaN,返回false;
如果一个操作数是undefined,返回true;
位运算符号:
>>(右移,将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0)
0000 0001
结果:0000 0000
>>>(无符号右移,无符号一直补0)
0000 0001
结果:0000 0000
<<(左移,用来将一个数的各二进制位全部左移N位,右补0)
0000 0001
结果:0000 0010
&(按位与,每一位二进制比较,两个都为1,结果才能是1)
1111&0110
结果:0110
|(按位或,每一位二进制比较,其中有一个为1,结果就是1)
1111|0110
结果:1111
~(按位取反)
10—>0000000000000000001010
结果:1111111111111111110101 -11
其他运算符号:
条件?表达式1:表达式2(条件运算符)
条件为真执行表达式1,条件为假,执行表达式2
设var a=2,b=3; 则a++==b?(a-1):b的结果是
结果:3
算数运算符号:
+(加法)
var a=10+6;
结果:16
两个数字类型相加,得到一个数字类型。
一个数字类型和一个字符串类型相加,得到一个字符串类型。
-(减法)
var a=10-6;
结果:4
两个数字类型相减,得到一个数字类型。
一个数字类型和一个数字字符串相减,结果是一个数字,得到一个数字类型。
一个数字类型和一个非数字的字符串相减,得到结果nan的数字类型。
nan:非数字。
*(乘法)
var a=10*6;
结果:60
/(除法)
var a=10/6;
结果:1.67
两个数字类型相除,得到一个数字类型。
一个数字类型和一个数字字符串相除,结果是一个数字,得到一个数字类型。
一个数字类型和一个非数字的字符串相除,得到结果nan的数字类型。
0作为除数 结果Infinity(无限大),得到一个数字类型。
%(取余,浮点数不会转成整数四舍五入取余,php里浮点数会转成整数在取余)
取余结果的正负号只跟除数有关。
用于被整除的时候,还用于求一段范围
var a=10%6;
结果:4
++(自加)
++i(参与运算的时候,先自加,自加之后的结果在赋值)
i++(参与运算的时候,先赋值,赋值之后再自加)
a++;
结果:2
--(自减)
--i(参与运算的时候,先自加,自加之后的结果在赋值)
i--(参与运算的时候,先赋值,赋值之后再自加)var a=2;
a--;
结果:1
赋值运算符号:
=(赋值)
var a=6;
结果:6
+=(加法运算完在赋值)
var a=1;
var a+=a;
结果:a=a+a 2
-=(减法运算完在赋值)
var a=1;
var a-=a;
结果:a=a-a 0
*=(乘法运算完在赋值)
var a=1;
var a*=a;
结果:a=a*a 1
/=(除法运算完在赋值)
var a=1;
var a/=a;
结果:a=a/a 1
%=(求得余数在赋值)
var a=1;
var a%=a;
结果:a=a%a 0
条件运算符号:
>(大于)
var a=1;
var b=2;
var c=a>b;
结果:false
<(小于)
var a=1;
var b=2;
var c=a<b;
结果:true
==(等于,只判断值是不是一致,不判断数据类型)
var a=1;
var b=2;
var c=a==b;
结果:false
!=(不等于,只判断值是不是一致,不判断数据类型)
var a=1;
var b=2;
var c=a!=b;
结果:true
>=(大于等于)
var a=1;
var b=2;
b>=a;
结果:true
<=(小于等于)
var a=1;
var b=2;
b<=a;
结果:false
===(不管值还是类型全部一致)
var a=1;
var b="1";
b==a;
结果:false
!==(不管值还是类型全部不一致)
var a=1;
var b="2";
b!==a;
结果:true
逻辑运算符号:
&&(与,一假全假)
var a=0;
var b=(a>0&&a==0);
结果:false;
||(或,一真全真)
var a=0;
var b=(a>0||a==0);
结果:true;
易发生短路:
var a=10;
if(a>=10||a++>10)
{
alter(a)
结果:10
}
^(异或,按位异或,相同为0,不同为1)
var a1 = 0x01; //0000 0001
var a2 = 0x00; //0000 0000
var b=a1^a2;
结果:00000001
!(非)
如果一个操作数是一个对象,返回true;
如果一个操作数是一个空字符串,返回false;
如果一个操作数是一个非空字符串,返回false;
如果一个操作数是一个数值0,返回false;
如果一个操作数是任意的非零字符,返回true;
如果一个操作数是null,返回false;
如果一个操作数是NaN,返回false;
如果一个操作数是undefined,返回true;
位运算符号:
>>(右移,将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0)
0000 0001
结果:0000 0000
>>>(无符号右移,无符号一直补0)
0000 0001
结果:0000 0000
<<(左移,用来将一个数的各二进制位全部左移N位,右补0)
0000 0001
结果:0000 0010
&(按位与,每一位二进制比较,两个都为1,结果才能是1)
1111&0110
结果:0110
|(按位或,每一位二进制比较,其中有一个为1,结果就是1)
1111|0110
结果:1111
~(按位取反)
10—>0000000000000000001010
结果:1111111111111111110101 -11
其他运算符号:
条件?表达式1:表达式2(条件运算符)
条件为真执行表达式1,条件为假,执行表达式2
设var a=2,b=3; 则a++==b?(a-1):b的结果是
结果:3
练习: