js 运算符

运算符

表达式

是各类变量、数值、运算符的综合体。最简单的表达式是一个字面量或者变量。数组

一元运算符

只能操做一个值的运算符叫一元运算符。函数

其余类型应用一元运算符的规则。编码

var  box="89";
box++
//90,数值字符串自动转换成数值

var box="a";
box++;
//NaN,字符串包含非数值转成NaN

var box=flase;
box++;
//1,flase转成数值是0,累加结果是1

var box=1.3;
box++;
//2.3, 

var box={
  toString: function(){
   return 1;
  }
};  box++;

算术运算符

加、减、乘、除、余。若是在算数运算的值不是数值,那么后台会使用Number()转型函数将其转换为数值(隐式转换)。spa

1.加code

//加法
var box=1+2;   //3
var box=1+NaN; //NaN  只要有一个NaN就为NaN
var box=Infinity+Infinity;  //Infinity
var box=-Infinity+-Infinity;  //-Infinity
var box=Infinity+-Infinity;  //NaN,正无穷和负无穷相加等于NaN
var box=100+"100"   //100100  字符串链接符  有字符串就不是加法
var box="您的年龄是:"+10+20;  //您的年龄是:1020,被转换成字符串
var box=“您的年龄是:”+(10+20); //您的年龄是:30,没有被转换成字符串
var box=10+20+“您的年龄是:”; //30您的年龄是:,没有被转换成字符串
var box=10+对象 //10[Object Object],若是有toString()或valueOf(),则返回10+返回数的值

减、乘、厨、余能够本身试对象

var a=56;
   var b=++a;  //b=++a <==> [a=a+1;b=a;]  b=a++ <==> [b=a;a=a+1]
   alert(a);
   alert(b);

// b=++a  结果是57 57
// b=a++  结果是57 56

关系运算符

<  >  <=   >=   ==相等   !=不等   ===全等值和数据类型   !==不恒等字符串

1,两个操做数都是数值,则数值比较;it

2,两个操做数都是字符串,则比较两个字符串对应的字符编码值;io

3,两个操做数有一个是数值,则将另外一个转换为数值,再进行数值比较;字符编码

4,两个操做数有一个是对象,则先调用valueOf()方法或toString()放的,再进行结果比较;

var box=3>2;  //true
var box=3>22; //flase
var box="3">22; //flase
var box="3">"33"  //flase
var box="a">"b"  //flase
var box=1>对象  //flase 若是有toString()或valueOf(),z则返回1>返回数的值

在相等和不等的比较上,若是操做数是废树脂,则遵循如下规则

1,一个操做数是布尔值,则比较值钱将其转换为数值,flase转换为0,true转换为1;

2,一个操做数是字符串,则比较值钱将其转换为数值再比较;

3,一个操做数是对象,则先调用valueOf()或toString()方法后再和返回值比较;

4,不须要任何转换的状况下,null和undefined是相等的;

5,一个操做数是NaN,则==返回flase,则!=返回true;而且NaN和自身不等;

6,两个操做数都是对象,则比较他们是否为同一对象,若是都指向同一对象,则返回true,不然返回flase.

7,在全等和不等的判断上,好比值和类型都相等,才返回true,不然返回flase.

逻辑运算符

一般用于布尔值的操做,and   or  not非

1.and  &&

var  box=(5>4)&&(4>3)  //两边都为true 返回true   有一个flase 返回flase

第一个操做值                  第二个                          结果

true                                    true                             true

true                                    flase                            flase

true                                    flase                           flase

flase                                  true                            flase

flase                                 flase                             flase

若是两边的操做数有一个不是布尔值的状况下,与运算就不必定返回布尔值,此时,遵循如下原则:

1,第一个操做数是对象,则返回第二个操做数;

2,第二个操做数是对象,则第一个操做数返回true,才返回第二个操做数,不然返回flase

3,有一个操做数是null,则返回null

4,有一个操做数是undefined,则返回undefined

var box=对象&&(5>4);   //true,返回第二个操做数
var box=(5>4)&&对象    //[object object]
var box=(3>4)&&对象    //flase
var box=(5>4)&&null   //null

2.or ||

var box=(9>7)||(7>8); //true,两边只要有一个是true,返回true

3,非  !

非运算符能够用于任和数据类型,这个运算符否是返回一个布尔值,它的流程是,现将这个值转换成布尔值,而后取反。

赋值运算符

=  把右边的值赋给左边的变量

var box=100;   //把100赋值给box变量

复合赋值运算符经过x=的形式表示x表示算数运算符及位运算符

var box=100;
box=box+100;

其余运算符

1.字符串运算符

字符串运算符只有一个,即"+"  它的做用是将两个字符串相加。

规则:至少有一个操做数是字符串

var box="100"+100;  //100100
var box=100+100; //200

2,逗号运算符

逗号运算符能够在一条语句中执行多个操做。

var box=100,age=20,height=168;  //多个变量声明
var box=[1,2,3,4,5];   //数组字面量声明
var box={1:2,3:4,5:6}  //[object object],对象的字面量声明

3,三元条件运算符

三元条件运算符就是if语句的简写形式

var box=5>4?"对":"错";  //对,5>4返回true则把“对”赋值给box,反之
//至关于

var box="";
if(5>4){
box="对"
}
else{
box="错";
}
相关文章
相关标签/搜索