首页 > 代码库 > javascript 操作符

javascript 操作符

操作符包括算数操作符(如加号和减号),位操作符,关系操作符和相等操作符
在ecmaScript 中,在操作符应用于对象时,相应的操作符通常都会调用对象的valueOf()或者toString()方法
1.递增递减操作符:
应用时会先将待操作的变量转换为数字值,否则设置为NaN,在执行操作
2.一元加和减操作符
在对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。换句话说,布尔值false和true将被转换为0和1,字符串值会被按照一组特殊的规则进行解析
var aa="01";
var bb="1.1";
var cc="zz"
var dd=false;
var ee=1.1;
var o={
ss:1
}
var aa1=+aa; //1
var bb1=+bb;//1.1
var cc1=+cc;//NaN
var dd1=+dd;//0
var ee1=+ee;//1.1
var o1=+o.ss;//1
3.布尔操作符 
 1.逻辑非
 逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再对其求反
逻辑非操作符遵循下列规则:
如果操作数是:
一个对象,返回false
一个空字符串,     返回true
一个非空字符串,  返回false
数值0                    返回true
任意非0数值          返回 false
null                       返回true
NaN                     返回true
undefind               返回true
逻辑非操作也可以用于将一个值转换为与其对应的布尔值。而同时使用来那个逻辑非操作符,实际上就会模拟Boolean( )转型函数的行为
 
2.逻辑与
逻辑与可以应用于任何类型的操作数,而不仅仅是布尔值。在有一个数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;他遵循下列规则:
如果有一个操作数是null               返回null
如果有一个操作数是NaN             返回NaN
如果有一个操作数是undefined     返回undefined
 
3.逻辑或
与逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值
 
4.乘性操作符 
  1.乘法
     在操作数为非数值的情况下会执行自动的类型转换。如果参与乘法计算的某个操作数不是数值,后台会先使用Number()转型函数将其转换为数值。也就是说空字符串将被当作0,true将被当作1
     规则:
     有一个操作数是NaN,则结果是NaN;
     infinity与0相乘,结果 NaN
   2.除法
     与乘法类似
     规则:
     除数是0或者Infinity  返回NaN
   3.求模
     5 % Infinity         返回5                        (除数无穷大)
     Infinity % 5         返回NaN                    (被除数无穷大)
    5 % 0                   返回NaN                    (被除数有限大而除数是0)
5.加性操作符
 
 1.加法
Infinity加Infinity       返回Infinity
-Infinity加-Infinity     返回-Infinity
Infinity加-Infinity      返回NaN
5+5                      返回10
5+“5”                    返回“55”


var num1=5;
var num2=10;
var message="this sum of 5 and 10 is "+num1+num2;
console.log(message);
输出:
this sum of 5 and 10 is 510

var num1=5;
var num2=10;
var message="this sum of 5 and 10 is " + (num1+num2);
console.log(message);
输出:
this sum of 5 and 10 is 15

 2.减法

Infinity-Infinity                //NaN
-Infinity-(-Infinity)           //NaN
Infinity-(-Infinity)             //Infinity
-Infinity-Infinity               //-Infinity  
 
 var result1 = 5 - true;         //4 true被转换成了1
 var result2 = NaN-1;            //NaN
 var result3 = 5 - "2";         //3 "2"被转换成了2
 var result4 = 5 - "";          //5 ""被转换成了0
 var result5 = 5 - null;         //5 null被转换成了0  
 
4.关系操作符
在比较字符串符时,实际比较的是两个字符串中对应位置的每个字符的字符编码值
任何操作数与NaN比较,都返回false
"Brick"<"alphabet"                                        //true
"Brick".toLowerCase()<"alphabet".toLowerCase();           //false
"23" < "3"                                                //true 2的字符编码50  3的字符编码51
"23" <  3                                                //false
"a"  <  3                                                //false
5.相等操作符
1.不全等:
null和undefined 是相等的
要比較相等性之前,不能將NULL和undefined转换成其他任何值
如果有一个操作数是NaN,则相等操作符返回false,而不相等操作符返回true。即使两个操作数都是NaN,相等操作符也返回false;因为按照规则,NaN不等于NaN.
null == undefined
true
"NaN"==NaN
false
NaN==NaN
false
NaN != NaN
true
false == 0
true
true == 1
true
true == 2
false
undefined == 0
false
null == 0
false

1.全等:
除了在比较之前不转换操作数之外,全等和不全等操作符没什么区别。

555 === "555"
false
555 == "555"
true
555 !== "555"
true
555 != "555"
false
undefined == null  //null与undefined是不同类型的值
true
undefined === null
false

6.条件操作符

var max = (num1 > num2) ? num1 :num2;

7.赋值操作符

每个主要算术操作符都有对应的复合赋值操作符。这些操作符如下所示:

var nn = 10;
nn += 10;
20
var num = 10;
num =num +10;
20
var ss=5;
ss *=5;
25
var dd=5;
dd /=5;
1
var ff=5;
ff %=5;
0
var ee=5;
ee -=2;
3
8.逗号操作符
使用逗号操作符可以在一条语句中执行多个操作

javascript 操作符