javascript运算符
运算符和操作数的组合就称为表达式
1、算术运算符
+ - * / %
++var 前加加
var++ 后加加 (var=var+1)
--var 前减减
var-- 后减减(var=var-1)
A.+ (1)用于数值的相加运算 (2)用于字符串的连接 (3)任何的数据类型和字符串相加都等于相加后的字符串
var str="123";
var num=1;
document.write(str+num);
输出1231
B.% (1)用于取一段范围的值
取奇数 num1%2==0
取偶数 num1%2!=0
var num1=6;
if(num1%2==0){
document.write("偶数");
}else{
document.write("奇数");
}
C.++var 和 var++
++在前先+1再赋值
++在后先赋值再+1
var num2=1;
var r1=num2++;
var num3=1;
var r2=++num3;
document.write(r1); 输出1
document.write(r2); 输出2
(2)一般不用于小数,因为结果不确定
2、关系运算符(比较运算符)
< > <= >= == === != !==
(1)运算的结果都是布尔值
(2)都是字符串的时候,会转换成ASCII码再进行比较
var ch1="abc";
var ch2="ba";
document.write(ch1>ch2); 输出false
(3)都是数值的时候会正常比较
document.write(3<4); 输出true
(4)当一个是字符串,另一个是数值的时候,会把字符串转化成数值类型,然后进行比较。
如果不能转换成数值类型,则会返回NaN,然后返回false
document.write("123">121); 输出true
var ch3="d";
var num4=150;
document.write(num4>ch3); 输出false
(5) undefined==null
(6)如果两个都是数值型字符串,只是比较第一个
document.write("123"<"23"); 输出true
(7)如果一个数值和一个布尔值信息比较,会把布尔值转换为数值再进行比较,true为1,false为0
document.write(true==1); 输出true
document.write(false==0); 输出false
A.==
(1)比较字符串的时候是比较它们的ASCII码是否相等
(2)比较两个数值的时候是比较它们的数值是否相等
(3)比较函数的时候是判断它们的位置是否相等
B.===
不但比较值是否相等,还比较类型是否相等
3、赋值运算符
= += -= *= /= %=
A.+= (1)用于数值的相加再赋值 (2)用于字符串的连接再赋值
var a=1; a+=3;(a=a+3)
4、逻辑运算符(布尔运算符)
与 and &&(运算符两边只要有一个是假,那么运算结果就是假。只有当两个都为真的时候,运算结果才是真)
或 or ||(运算符两边只要有一个是真,那么运算结果就是真。只有当两个都为假的时候,运算结果才是假)
非 not !(假的变成真的,真的变成假的)
4.1逻辑运算符可与对任何类型的数据进行运算但是在运算的时候,可以转换成对应的布尔值
undefined转为false Null转为false Boolean就是本身的值
Number除了0以外都是真的
String除了空字符串以外都是真的
所有的对象都是真的
var a=true;
var b=true;
if(a&&b){
document.write("两个都是真");
}else{
document.write("至少有一个是假");
}
输出 两个都是真
var a=true;
var b=false;
if(a||b){
document.write("至少有一个是真");
}else{
document.write("两个都是假");
}
输出 至少有一个是真
document.write(!true); 输出false
document.write(!false); 输出true
var ud;
document.write(!ud); 输出true
if(2&&true){
document.write("true");
}else{
document.write("false");
}
输出true
4.2给变量进行赋值
var a=b && c;
如果一个运算数是对象,另一个是Boolean值,返回该对象
如果两个运算数都是对象,返回第二个对象
如果某个运算数是null,返回null
如果某个运算数是 NaN,返回NaN
如果某个运算数是undefined,发生错误
var a=b || c;
如果一个运算数是对象,并且该对象左边的运算数值均为false,则返回该对象
如果两个运算数都是对象,返回第一个对象
如果最后一个运算数是null,并且其他运算数值均为false,返回null
如果最后一个运算数是NaN,并且其他运算数均为false,返回NaN
如果某个运算数是undefined,发生错误
var a=new Object();
var b=new Object();
var c=a&&b;
document.write(c==b); 输出true
5、一元运算符(可以操作一个操作数)
typeof + - delete new ++ --
A.+正号、正数
B.-负号、负数
C.delete是用来删除对象的方法或是属性的
D.new是用来创建一个对象的
6、特殊的运算符
, () =?:
A.,
用来一次声明多个变量
B.()
1.运算时有优先级的作用,如a*(b-c)先运行b-c 2.运行一段函数
C.=?:
根据表达式的运算结果有条件地位变量赋值
格式 var 变量=布尔表达式?真值:假值
var a=true;
var b=false;
var c=a?1:0;
document.write(c); 输出1
var c=b?1:0;
document.write(c); 输出0
7、位运算符
| & >> <<