首页
操作符
操作符
版权声明:本文为原创内容,转载请声明出处。
原文地址:http://www.excelib.com/article/202/show

操作符列表

操作符相信大家都不陌生,学生本节首先给大家列出ES2015中所有操作符,并对每个操作符列出其功能,并列举相应的示例,最后再对一些特殊的操作符或者特殊的用法进行单独讲解。


表1:ES2015操作符列表

操作符

功能

示例

{ }

1、  定义语句块

2、  创建对象

1、  {c=a+b;}

2、  var obj = {a:1,b:2}

( )

1、  定义函数

2、  调用函数

3、  改变计算优先级

1、  function say(msg){…}

2、  say(“hello”);

3、  v=a*(b+c);

[ ]

1、  操作数组

2、  获取对象属性

1、  var arr = [0,1,2];
 
arr[1];  //1

2、  var obj={a:1,b:2};
 
obj[a];  //1

.

1、  获取对象的属性

2、  调用对象的方法

var obj={a:1,
 
  f:function(msg){
 
    console.log(msg);
    }
  };

obj.a;  //1
 
obj.f(“hello”);    //hello

...

1、  将参数转化为数组

2、  将数组转换为参数

1function mailTo(…names){};

2Math.max(...[1,3,5]);

;

1、  一条语句结束的标识符

2、  定义空语句

1、  a++;

2、  for(;i<0;i++){…}

,

多个并列语句的分隔符

var a=1,b=2;

var arr=[1,2,3];

var obj = {a:1,b:2,c:3};

判断是否小于

if(a<327){…}//如果a小于327就会执行

判断是否大于

if(a>956){…}//如果a大于956就会执行

<=

判断是否小于等于(不大于)

if(a<=327){…}//如果a小于等于327就会执行

>=

判断是否大于等于(不小于)

if(a>=956){…}//如果a大于等于956就会执行

==

判断是否相等

true==1  //true

!=

判断是否不相等

true!=1  //false

===

判断是否恒等

true===1  //false

!==

判断是否恒不等

true!==1  //true

true!==false  /true

+

加法

var a = 2+5; //7

-

减法

var a = 2-5; //-3

*

乘法

var a = 2*5; //10

/

除法

var a = 2/5; //0.4

%

求余

var a = 5%2; //1

++

自加

var a = 1;a++; //2

--

自减

var a = 1;a--; //0

<< 

左移位

var a = 5<<2; //20(5的二进制为101,左移2位为10100)

>> 

有符号右移位

var a = 5>>2; //1(5的二进制为101,右移2位为1)

>>> 

无符号右移位

var a=-1>>>0; //4294967295(无符号时-1等于最大值减1

&

按位与,一般用来将某些位清0

0x3756 & 0xFF00 //0x3700,将后8位清0

|

按位或,一般用来将某些位置1

0x3756 | 0xFF00 //0xFF56,将前8位置1

^

按位亦或

0xFFFF ^ 0xF0F0 //0x0F0F,相同为0不同为1

~

按位取反

~0xF //0xFFFFFFF0-16

!

逻辑非

!(3>6)  //true

&&

逻辑与

(8>7)&&(2>5)  //false

||

逻辑或

(8>7)||(2>5)     //true

? :

条件运算符,这是唯一一个需要三个表达式的运算符,也叫三目运算符

a>800?800:a;  //如果a大于800返回800,否则返回a

=

赋值

a=386;

+=

加并赋值

var a=25;a+=12; //a=37

-=

减并赋值

var a=25;a-=12; //a=13

*=

乘并赋值

var a=25;a*=12; //a=300

/=

除并赋值

var a=24;a/=12; //a=2

%=

求余并赋值

var a=25;a%=12; //a=1

<<=

左移位并赋值

var a = 5;a<<=2;    //20

>>=

有符号右移位并赋值

var a = 5;a>>=2; //1

>>>=

无符号右移位并赋值

var a=-1;a>>>=0; //4294967295

&=

按位与并赋值

var a=0x3756;a&= 0xFF00 //0x3700

|=

按位或并赋值

var a=0x3756;a|=0xFF00 //0xFF56

^=

按位亦或并赋值

var a=0xFFFF;a^=0xF0F0 //0x0F0F

=>

创建函数表达式

x=>x+5;


使用细节与技巧

=====

ES中的=====都是用来判断是否相等的,但是具体用法有点区别,因为ES是一种弱类型语言,所以不同类型之间也可以比较是否相等,如果用==则会比较转换后的值是否相等,如果用===比较则只要类型不同就返回false,比如下面的例子

1
2
3
 var a= 1,b="1";
 console.log(a==b);  //输出true
 console.log(a===b); //输出false

&&和||

逻辑与操作符&&的判断逻辑是依次判断每个表达式,当遇到false的表达式的时候就会马上返回而不再继续执行后面的表达式,如果所有表达式都为true则返回true,比如下面的语句

(表达式1)&& (表达式2) && (表达式3) && (表达式4) && (表达式5)

当表达式1和表达式2都为true而表达式3false的时候表达式4和表达式5就不再判断了,也就不会被执行。利用这个特性我们可以执行一些条件语句,比如

1
b=a>5&&a-3;

这条语句在a>5的时候就会执行a-3并将计算结果赋值给b,否则将false赋值给b,相当于下面的语句

1
2
3
4
5
if(a>5){
     b=a-3;
 }else{
    b=false;
 }

通过多个表达式的逻辑与组合可以完成非常有趣的功能。

逻辑或操作符||也非常有意思,他的判断逻辑是依次判断每个表达式,当遇到第一个true表达式的时候马上返回不再继续执行后面的表达式,如果所有表达式都为false则返回false,比如下面的语句

1
typeof jQuery!="undefined"||importjQuery();

这条语句首先通过判断jQuery是否存在来判断是否引入了jQuery,如果不存在则调用importjQuery函数导入jQuery,否则就不导入了。


另外,点操作符也非常重要,我们在后面会详细给大家讲解。按位操作在硬件开发中使用的比较多,软件编程中不是很多,不过我们后面的内容也会涉及到,到那时候再给大家详细介绍,涉及到具体问题再去学习就容易理解了。“”和“=>”是ES2015中新增的操作符,我们后面单独讲解,其他操作符都比较简单,通过上面表格中学生给大家设计的例子应该可以很容易地理解,学生就不逐个详细给大家解释了。