JavaScript运算符和表达式

JavaScript运算符和表达式

JavaScript运算符主要有算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符和位运算符;此外,若根据操作数的个数,可将运算符分为一元运算符、二元运算符、三元算符。

那么什么是表达式呢?在JavaScript中,由操作数和运算符结合构成的式子称为“表达式”,最简单的表达式可以是变量名称,复杂的表达式可由简单的表达式组成。

一、算术运算符和表达式

算术运算符负责算数运算,用算术运算符和运算对象连接起来符合规则的式子,称为算术表达式。常用算术运算符如下表所示:

运算符 类型 操作说明 表达式
+ 二元运算符 加法运算符 404+403;“Hello”+“World!”;
- 二元运算符(减法)一元运算符(取反) 减法/取反运算符 111-110;(减法)-121;(取反)
* 二元运算符 乘法运算符 35;3A;
/ 二元运算符 除法运算符 15/5;18/“6”;
% 二元运算符 模(取余)运算符 13%5;19/“15”;
++ 二元运算符 自增运算符 i++;++i;
二元运算符 自减运算符 i–;--i;

注意:

1、在进行加法运算时,如果两个操作数都是字符型,或者一个是字符型,另一个是数值型,那么加法运算会将数值型转换成字符型;

2、减法运算运符用于取反运算,此时为一元运算符,操作数必须为数字;

3、乘、除、模运算中,若操作数不是数值型但可以转换为数值型,会将其自动转换成数字,而后再进行运算操作;

4、自增和自减运算有两种形式,符号前置表示运算在使用操作数之前,符号后置表示运算在使用操作数之后。

二、关系运算符和表达式

关系运算符用于比较运算符两端的表达式的值,确定二者关系。用关系运算符和操作数连接起来符规则的式子,称为关系表达式。常用关系运算符如下表所示:

运算符 操作说明 运算符 操作说明
== 等于 > 大于
!= 不等于 >= 大于等于
< 小于 === 全等于
<= 小于等于 !== 非全等于

1、等于运算符(==)

二元运算符,用于判断两个操作数是否相等,相等返回true,反之则返回false。

注意:

(1)操作数类型不同时,如果操作数为字符串有数字,那么自动将字符串转换为数字;如果操作数中有布尔值,那么自动将true转换为1.false转换为0;如果操作数一个是对象一个是字符串或数字,那么将对象自动转换为与另一个类型相同的值;而后再进行比较;

(2)当两个函数、数组、对象进行比较时,只有两个变量引用的为同一函数、数组或者对象时,它们才是相等的;

(3)两个操作数全为nill或undefined类型,或者一个为null一个为undefined类型,那么结果相等;

(4)如果一个操作数为NaN,另一个操作数也为NaN,那么结果是不等的。

2、不等于运算符(!=)

二元运算符,用于判断两个操作数是否不相等,不相等返回true,反之则返回false。

注意项可以参考等于运算符(==)。

3、小于运算符(<)

二元运算符,用于比较两个操作数,如果第一个操作数小于第二个操作数则返回true,反之则返回false。

注意:

(1)只能用于比较数字和字符,类型不同的的数据都会被转换成这两种类型,首先转换为数字,如果无法转换成数字类型也无法转换为字符串类型,那么比较结果是false;

(2)数字按照大小规则进行比较,字符串按照字母顺序规则进行比较。

4、小于等于运算符(<=)

二元运算符,用于比较两个操作数,如果第一个操作数小于等于第二个操作数则返回true,反之则返回false。

注意项可以参考小于运算符(<)。

5、大于运算符(>)

二元运算符,用于比较两个操作数,如果第一个操作数大于第二个操作数则返回true,反之则返回false。

注意项可以参考小于运算符(<)。

6、大于等于运算符(>=)

二元运算符,用于比较两个操作数,如果第一个操作数大于等于第二个操作数则返回true,反之则返回false。

注意项可以参考小于运算符(<)。

7、全等于运算符(===)

全等于号“===”表示当比较的两个数据值和类型均相等是,结果为true,反之则为false。

8、非全等于运算符(!==)

非全等于号“!==”表示当比较的两个数据的值和类型有一个不相等时、或者两个都不相等,结果为true,反之则为false。

三、逻辑运算符和表达式

逻辑运算符负责执行逻辑运算,其操作数应该是布尔型或者可以转换为布尔型的数值和表达式。用逻辑运算符和操作数连接起来符合规则的式子,称为逻辑表达式。常用逻辑运算符如下表:

操作数a 操作数b !a(逻辑非) a&&b(逻辑与) a||b(逻辑或)
true false false true true
true false false false true
false true true false true
false true true false false

1、逻辑与运算符(&&)
二元运算符,当两个布尔型操作数都是true时,结果返回true,反之则返回false。

2、逻辑或运算符(||)
二元运算符,当两个布尔型操作数有一个或两个为true时,结果返回true,反之则返回false。

3、逻辑非运算符(!)
一元运算符,对运算结果的布尔值取反,如果操作数的布尔值为true时,结果返回false,反之则返回true。

四、赋值运算符和表达式

赋值运算符的作用就是将右操作数的值赋给左操作数,要求左操作数是变量、数组元素或对象属性,而右操作数可以是一个任意类型的值,用赋值运算符和操作数连接起来符合规则的式子,称为赋值表达式。常用:

运算符 操作说明 运算符 操作说明
= 基本赋值运算符 *= 复合赋值运算符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

五、位运算符和表达式

位运算符是对二进制整数进行按位操作的运算符,如果操作数不是二进制,会将其转换成32位二进制数字,无法转换时结果为NaN。常用位运算符和操作数连接起来符合规则的式子,称为位运算表达式。用位运算符如下表所示:

运算符 操作说明 运算符 操作说明
& 按位与运算符 ~ 按位非运算符
| 按位或运算符 ^ 按位异或运算符

1、按位与运算符(&)

二元运算符,将两个操作数转换为二进制数字并逐位进行逻辑与操作。如果两个操作数对应位置上数字都为1,那么这一位运算结果为1,否则为0。如:10 & 78 //10=>00001010,78=>01001110,结果为00001010=>10。

2、按位或运算符(|)

二元运算符,将两个操作数转换为二进制数字并逐位进行逻辑或操作。如果两个操作数对应位置上数字都为0,那么这一位运算结果为0,否则为1。如:81 & 16 //81=>01010001,16=>00010000,结果为01010001=>81。

3、按位非运算(~)

一元运算符,将操作数转换为二进制数字并逐位进行逻辑非操作,即将每一位都取反。如:~100 //100=>00000000 00000000 00000000 01100100,逐位取反可得:11111111 11111111 11111111 10011011=>-101。

4、按位异或运算符(^)

二元运算符,将两个操作数转换为二进制数字并逐位进行逻辑异或操作。如果两个操作数对应位置上数字相同,那么这一位运算结果为1,否则为0。如:10 & 30 //10=>00001010,30=>00011110,结果为00010100=>20。

六、条件运算符和表达式

条件运算符是JavaScript中唯一的三元运算符,由条件运算符(?、:)和操作数连接起来符合规则的式子,称之为条件表达式。

基本格式为:<变量>=<条件表达式> ? <真值表达式> : <假值表达式>,表示当天件表达式结果为真时(true),将真值表达式的值赋值给变量,否则将假值表达式的值赋值给变量。

七、其他运算符和表达式

除上述运算符以外,还有一些其他常用运算符,如下表所示:

运算符 操作说明 运算符 操作说明
, 逗号运算符 delete 删除运算符
new 新建对象运算符 typeof 类型运算符

1、逗号运算符:二元运算符,先计算第一个表达式的值,再计算第二个表达式的值,运算结果为第二个表达式的值。例:

var a,c = 2; 
a = (--c,6 + c);

2、新建对象运算符:一元运算符,用于创建JavaScript对象实例或数组。例:new obj = new Object(); new arr = new Array();

3、删除运算符:一元运算符,用于删除一个对象的属性或某个数组元素。例:delete arr[2] ; delete obj.prototype;

4、类型运算符:一元运算符,运算结果返回一个表示操作数类型的的字符串。例:typeof("Hello"); //结果为String

如有错误欢迎指正!!!

猜你喜欢

转载自blog.csdn.net/ozp483618589/article/details/121585352