目录

一、算术运算符

1. 常用的算术运算符

2. 算术运算符的注意事项

二、递增和递减运算符

1. 前置递增(递减)运算符

2. 后置递增(递减)运算符

3. 前缀和后缀的区别

三、比较运算符/关系运算符

四、逻辑运算符

1. '&&'运算中的短路现象

2. '||'运算中的短路现象

五、位运算符

六、赋值运算符

七、三元运算符

八、运算符优先级


一、算术运算符

算术运算符用于对两个变量或值进行算术运算,与数学上的加、减、乘、除类似。

1. 常用的算术运算符

运算符

运算

示例

解释说明

+

1 + 5

6

-

8 - 4

4

*

3 * 4

12

/

3 / 2

1.5

%

取余数(取模)

7 % 5

2

2. 算术运算符的注意事项

  • 进行四则混合运算时,运算顺序要遵循数学中“先乘除后加减”的原则。
  • 在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。
  • 在开发中尽量避免利用浮点数进行运算,因为有可能会因JavaScript的精度导致结果的偏差。
  • 使用“+”和“-”可以表示正数或负数。即+、-既是单目运算符又是双目运算符。

单目运算符(一元运算符):参与运算的对象只有一个,并运算符必须出现在运算对象的左边。(如+5,-6)

双目运算符(二元运算符):参与运算的对象有两个。(如a+b)

注意:

  • 表达式是各种类型的数据、变量和运算符的集合,最简单的表达式可以是一个变量或字面量。
  • 表达式最终都会有一个返回值。

二、递增和递减运算符

使用递增(++)、递减(--)运算符可以快速地对变量的值进行递增和递减操作,它属于一元运算符,只对一个表达式进行操作。递增和递减运算符的优先级高于“+”“-”等运算符。

1. 前置递增(递减)运算符

递增和递减运算符写在变量前面,返回的是计算后的结果。

        var a = 5;a++;console.log(a); // 输出:6var n=5,m=3,k;k = ++n*m; // 先加1,后运算console.log(n);console.log(k); // 输出:18

2. 后置递增(递减)运算符

递增和递减运算符写在变量后面,返回的是计算前的结果。

        var b = 5;++b;console.log(b); //输出:6var n=5,m=3,k;k = n++*m; // 先运算,后加1console.log(n);console.log(k); // 输出:15

3. 前缀和后缀的区别

  • 作为独立的语句,没有区别:都是让运算对象+1。
  • 若放在表达式中:前缀表达式先让变量+1,然后再使用变量的值;后缀表达式先使用变量的值,然后再让变量+1。

三、比较运算符/关系运算符

比较运算符用于对两个数据进行比较,其结果是一个布尔值,即true或false ,常用的比较运算符及用法见下表。

运算符

运算

示例

结果

>

大于

5 > 5

false

<

小于

5 < 5

false

>=

大于或等于

5 >= 5

true

<=

小于或等于

5 <= 5

true

==

等于(只比较值)

5 == 4

false

!=

不等于(只比较值)

5 != 4

true

===

全等(先判断类型、后判断值)

5 === 5

true

!==

不全等(类型、值)

5 !== '5'

true

        var a = '123';var b = 123;console.log(a == b); // 输出:trueconsole.log(a === b); // 输出:false

四、逻辑运算符

逻辑运算符用于对布尔值进行运算,其返回值也是布尔值。在实际开发中,逻辑运算符经常用于多个条件的判断,常用的逻辑运算符见下表。

运算符

运算

示例

结果

&&

a && b

a和b都为true,结果为true,否则为false

||

a || b

a和b中至少有一个为true,结果为true,否则为false

!

非(取反)

!a

单目运算符,若a为false,结果为true,否则相反

1. '&&'运算中的短路现象

当"表达式1"为假时,不运算"表达式2"

        var a = 10, b = 5, k;k = a>6 && (--b<3); // k所等于的第一个表达式为真,第二个表达式为假console.log('k=', k); // 输出:falseconsole.log('b=', b); // 输出:4// '&&'运算中的短路现象:当"表达式1"为假时,不运算"表达式2"var n = 10, m = 5, z;z = n<6 && (--m<3); // z所等于的第一个表达式为假,第二个表达式为假console.log('z=', z); // 输出:falseconsole.log('m=', m); // 输出:5————因为短路了,没有运算

2. '||'运算中的短路现象

当"表达式1"为真时,不运算"表达式2"

        var n = 10, m = 5, z;z = n < 6 || (--m < 3); // z所等于的第一个表达式为假,第二个表达式为假console.log('z=', z); // 输出:falseconsole.log('m=', m); // 输出:4// '||'运算中的短路现象:当"表达式1"为真时,不运算"表达式2"var a = 10, b = 5, k;k = a > 6 || (--b < 3); // k所等于的第一个表达式为真,第二个表达式为假console.log('k=', k); // 输出:trueconsole.log('b=', b); // 输出:5————因为短路了,没有运算

五、位运算符

用来对数据进行二进制运算,将参与运算的操作数视为由二进制(0和1)组成的32位的串。

运算符

运算

示例

结果

&

按位'与'

a & b

a和b对应的二进制位都为1时,结果为1,否则为0

|

按位'或'

a ||b

a和b对应的二进制位有一个为1时,结果为1

^

按位'异或'

a^b

两个对应的二进制位相同为0,不同为1

例:按位'与'运算                                                     按位'异或'运算

                                                

六、赋值运算符

赋值运算符用于将运算符右边的值赋给左边的变量,常用的赋值运算符及示例见下表。

运算符

运算

示例

结果

=

赋值

a = 3;

a = 3

+=

加并赋值

a = 3; a += 2;

a = 5

-+

减并赋值

a = 3; a -= 2;

a = 1

*=

乘并赋值

a = 3; a *= 2;

a = 6

/=

除并赋值

a = 3; a /= 2;

a = 1.5

%=

模并赋值

a = 3; a %= 2;

a = 1

+=

连接并赋值

a = 'abc'; a += 'def';

a = 'abcdef'

<<=

左移位并赋值

a = 9; a <<= 2;

a = 36

>>=

右移位并赋值

a = -9; a >>= 2;

a = -3

>>>=

无符号右移位并赋值

a = 9; a >>>= 2;

a = 2

&=

按位“与”并赋值

a = 3; a &= 9;

a = 1

^=

按位“异或”并赋值

a = 3; a ^= 9;

a = 10

|=

按位“或”并赋值

a = 3; a |= 9;

a = 11

常用的赋值运算符及示例如下。

console.log(Boolean('')) // false
var age = 10;
age += 5;   // 相当于age = age + 5;
console.log(age);     // 输出结果:15
age -= 5;    // 相当于age = age - 5;
console.log(age);     // 输出结果:10
age *= 10;   // 相当于age = age * 10;
console.log(age);     // 输出结果:100

七、三元运算符

三元运算符是一种需要三个操作数的运算符,运算的结果根据给定条件决定。

条件表达式 ? 表达式1 : 表达式2

语法说明:先求条件表达式的值,如果为true,则返回表达式1的执行结果;如果条件表达式的值为false,则返回表达式2的执行结果。

八、运算符优先级

运算符优先级是指表达式中所有运算符参与运算的先后顺序,优先级如下表。

结合方向

运算符

结合方向

运算符

()

==   !=    ===    !==

.   []   new(有参数,无结合性)

&

new(无参数)

^

++(后置)  --(后置)

|

!   ~   -(负数)   +(正数)   ++(前置)   --(前置)   typeof   void   delete

&&

**

||

*    /   %

?:

+   -

=   +=   =   *=  /=   %=    <<=   >>=    >>>=    &=    ^=   |=

<<    >>    >>>

,

<   <=   >   >=    in   instanceof

注意:所有运算符中,单目运算符的优先级永远最高。

【JavaScript】运算符及其优先级相关推荐

  1. JavaScript运算符的优先级(案例讲解)

    先来看看这道题... 下边代码输出的结果是( ) var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' ...

  2. JavaScript运算符的优先级

    优先级从高到底 1. () 优先级最高 2. 一元运算符 ++ -- ! 3. 算数运算符 先* / % 后 + - 4. 关系运算符 > >= < <= 5. 相等运算符 = ...

  3. JavaScript运算符

    知识点罗列: 1.JavaScript运算符: ①算数运算符: 运算符也叫做操作符 通过运算符可以对一个或则多个值进行运算,并获取运算结果. - 算数运算符 + 加 可以对两个值进行加法运算,如果是两 ...

  4. (4)javascript的运算符以及运算符的优先级

    运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为算术运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符等. ...

  5. javascript 运算符优先级

    JavaScript 运算符优先级(从高到低) https://github.com/xhlwill/blog/issues/16 今天把js函数转换为python 函数时,发现在js运算符优先级这边 ...

  6. Like Sunday, Like Rain - JavaScript运算符优先级

    "JavaScript⾥的很多奇技淫巧,都来⾃于对运算符的灵活使⽤." 说到运算符的优先级,我们往往会想到一张见过无数次却从来没背下来的表.因为没背下来, 所以往往会认为它很简单, ...

  7. JavaScript运算符:递增递减运算符前置和后置的区别

    从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...

  8. JavaScript 运算符与逻辑分支

    = 等于 x=2; += 加等于 x+=3; 等同于x=x+3; -= 减等于 x-=3; 等同于x=x-3; = 乘等于 x=3; 等同于x=x*3; -= 除等于 x/=3; 等同于x=x/3; ...

  9. JavaScript运算符完全攻略(史上最全!)

    文章目录 JavaScript运算符完全攻略 操作数的个数 操作数的类型 运算符的优先级 运算符的结合性 左值.赋值及其副作用 加法运算 减法运算 乘法运算 除法运算 求余运算 取反运算 递增和递减 ...

  10. JavaScript运算符详解说明

    JavaScript运算符详解说明 运算符是完成一系列运算操作的符号. 算术运算符 算术运算符用来在程序中进加.减.乘.除等运算. 运算符 描述 + 加运算符 - 减运算符 * 乘运算符 / 除运算符 ...

最新文章

  1. 绝对定位和相对定位的口诀---子绝父相
  2. rdlc 分页操作和分页统计
  3. linux定时器回调处理过程,Linux内核系统定时器TIMER实现过程分析
  4. Kamailio 简介
  5. vue 实现 router store 文件自动加载
  6. dueros模拟测试没有请求后台_DuerOS开放平台
  7. vscode 插件导出_VScode插件推荐
  8. java重载静态方法_java – 使用静态和非静态方法重载的方法
  9. pytorch中的反卷积的output_padding参数
  10. PHP读取Excel和导出数据至Excel
  11. 国考省考行测:言语理解与表达,主旨理解,结构分析法,总分结构
  12. 想提高计算机ppt能力,相见恨晚的10个PPT制作小技巧!提高你的PPT制作效率
  13. 极域课堂管理系统软件如何取消控制_青岛海运职业学校智能用电管理平台系统建设项目完成验收...
  14. 代理服务器的常用端口有哪些?
  15. MathJax 支持的 Latex 符号总结(集合运算)
  16. 微型计算机的一般结构,微型计算机的基本结构
  17. Unity将相机内容输出成图片
  18. java过滤器不管用_java中过滤器不起作用的原因
  19. 《心经》经典段落及释义
  20. SpingBoot/JAVA实现给图片加水印功能(通过thumbnailator库)

热门文章

  1. 路径规划算法:动态规划
  2. vmware 14 密钥
  3. 使用企业微信的jsdk调用企业微信api--前端
  4. 云南智慧医院一卡通建设解决方案,昆明数字化医疗办公、就诊、用餐、停车一卡通用
  5. ssh连接不上服务器
  6. php lwm2m,理解COAP/LWM2M/MQTT协议和TCP/UDP协议的关系
  7. STEP 7-MicroWIN SMART 上传时搜索不到PLC
  8. .dmg文件转.iso的工具:dmg2img
  9. OpenLayers实例:打开ArcGIS Rest服务
  10. 系统分析和设计方法之数据建模和分析