《运算符》
运算符:
数学运算符:+ - * / % ++ --;
关系运算符:== != >= <= > <;
逻辑运算符:&& || !;
其他运算符:+= -= *= /= %= ?:;
三元运算符:
语法: 条件 ? 结果1 : 结果2; 把条件写在?的前面后面跟着用:分隔的结果1和结果2,满足条件是结果1,否则是结果2。
例子1:
<script type="text/javascript">
if(exp){
exp为true的代码段;
}else{
exp为false的代码段;
}
exp1?exp2:exp3;
第一种写法: if(3>1){
document.write('aa');
}else{
document.write('bb');
}
第二种写法: 3>1?document.write('aa'):document.write('bb');
第三种写法: var res=3>1?'aa':'bb';
document.write(res);
</script>
结果:aa
例子2:
var x=0/0; ------x = NaN
res=!isNaN(x)?0:x;
alert(res);
结果:NaN
逻辑运算符:
1、||(逻辑或), 从字面上来说,两个表达中有一个为true,整个结果为true。只有前后都是false的时候才返回false,否则返回true。
alert(true || true); //true
alert(true || false); //true
alert(false || true); //true
alert(false || false); //false
alert(0 || 1); 前面0=falsr(0),后面1=true(1),答案是ture,返回结果也就是1
如果第一个表达式为true,整个结果为true,把第二个表达式短路了
只要“||”前面为false ,无论“||”后面是true还是false,结果都返回“||”后面的值。
只要“||”前面为true ,无论“||”后面是true还是false,结果都返回“||”前面的值。
2、&&(逻辑与),从字面上来说,只有前后都是true的时候才返回true,否则返回false。
alert(true && true); //true
alert(true && false); //false
alert(false && true); //false
alert(false && false); //false
如果第一个表达式为false,整个结果为false,就把第二个表达式短路了
只要“&&”前面是false,无论“&&”后面是true还是false,结果都返回“&&”前面的值。
只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返回“&&”后面的值。
3、逻辑非“!”: 逻辑取反, false变true,true变false,
alert(!true);
alert(!false);
自增自减运算符:
自增运算符“++”,将数值增加1
自减运算符“- -”,将数值减少1
如果是++b,则表示先对变量b+1,再执行其他的操作
如果是b++,则表示先执行表达式操作,再对变量自身+1
++/-- 在左边先运算后赋值 //++a
++/--在右边先赋值后运算 // a - -
__ 整型支持自增 自减运算符
var num1=1;
alert(num1++); //1
alert(num1); //2
alert(++num1); //3
alert(num1- -); //3
__ 浮点型支持自增自减运算符
* num1=12.3;
alert(- -num1); //11.3
* num1=true; num1=false;
alert(++num1); //2 alert(++num1); //1
alert(- -num1); //1 alert(- -num1); //0
__字符串型不支持自增自减运算符
num1='3b';
alert(++num1); //NaN
alert(- -num1); //NaN
__ null支持自增自减运算符
num1=null;
alert(++num1); //1
alert(- -num1); //0
num1=undefined; //不支持
alert(++num1); //NaN
alert(null == undefined) //true
算术运算符:
java的算数运算符包括+(加)、-(减)、*(乘)、/(除)、%(取余),
var i=3 , j=8;
//常见 document.write(i+j); //11
document.write(i-j); //-5
document.write(i*j); //24
document.write(i/j); //0.375
document.write(i%j); //3
document.write(3%-8); //3
document.write(-3%8); //-3
document.write(-3%-8); //-3
//特殊 document.write(i+'8'); //38
document.write('2'+'8'); //28
document.write(i+j+'3king'); //113king
document.write(' '+i); //_3或3 (' ')空字符串不计
document.write(''+i+j+'3king'); //383king
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
var z=' '+i;
alert(typeof z); //string
赋值运算符:
运算符 | 名称 | 示例 | |
= | 赋值 | a=b+c 把b+c得到的值赋给a | |
+= | 加等于 | a+=b | a=a+b |
- = | 减等于 | a -=b | a=a -b |
*= | 乘等于 | a*=b | a=a*b |
/= | 除等于 | a /=b | a=a /b |
%= | a%=b | a=a%b |
例子:
var a=1;
a+=3; //a=a+3; 结果:4
a-=6; //a=a - 6; 结果:-5
a*=8; //a=a * 8; 结果:8
a/=4; //a=a / 4; 结果:0.25
a%=9; //a=a%9; 结果:1
alert(a);
比较运算符:
比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。
比较运算符 | 名称 | 举例 | 结果 |
> | 大于 | a=5;b=2;a>b; | true |
< | 小于 | a=5;b=2;a<b; | false |
>= | 大于等于 | a=5;b>=3; | true |
<= | 小于等于 | a=5;b=2;b<=a; | true |
== | 等于 | a=5;b=2;a==b; | false |
!= | 不等于 | b=2;b!=2; | false |
例子:
alert(3>1); //true
alert(3>=1); //true
alert(3<=12); //true
alert(3<2); //false
var res=1==true; //true
res=2=='1'; //false
res=3=='3king'; //false
res=0==null; //false
res=0!=null; //true
res=1===true; //false
alert(NaN==NaN); //false
alert(null==null); //true
alert(res);