目录

一、算术运算符:+、-、*、/、%

(1)优先级

(2)模运算(%)

(3)+、-

(4)自增(++)

(5)自减(--)

二、关系运算符(比较运算符)

三、逻辑运算符

1、逻辑与(&&)

2、逻辑或(||)

3、逻辑非(!)

四、赋值运算符(=)

1、格式

2、要求

3、复合赋值运算符

五、位运算符

1、按位与(&)

2、按位或( | )

​3、按位异或(^)

4、按位左移(<<)

​ 5、按位右移(>>)

六、条件运算符(? :)


一、算术运算符:+、-、*、/、%

(1)优先级

先乘除后加减,有括号的先算括号里的

(2)模运算(%)

运算结果的符号取决于%左边的数据,与%右边的数据无关

(3)+、-

+、- 既可以作为双目(两个变量)运算符,也可以作为单目(一个变量)运算符(表示正、负号 )

作为双目运算符,表示加减:10+2、10-2   +5 -5
    作为双目运算符,表示正负-5+2 ==>(-5)+2

(4)自增(++)

是运算对象自己给自己加1

a++   后缀表达式            
++a   前缀表达式

注意:作为独立语句前缀和后缀没有区别;但是若在混合运算的表达式中是有区别的 
               var a = 5,b = 6,c

c = a++*b     //先使用a的值,然后a+1;

c = ++a*b     //给a+1,再使用a的值

(5)自减(--)

是运算对象自己给自己减1            
 a--   后缀表达式            
 --a   前缀表达式

var d = 7,e = 8,f

f = d--*e       //先使用d的值,再给d-1

f = --d*e      //给d-1,再使用d的值

<body><script>var t = 1console.log(t%2) //模运算 1除以2,取余数var a = 5,b = 6, c //c = a++*b //先使用a的值,再给a+1c = ++a*b //给a+1,再使用a的值console.log('a=',a)console.log('c=',c)var d = 7,e = 8,f//f = d--*e//先使用d的值,再给d-1f = --d*e//给d-1,再使用d的值console.log('d=',d)console.log('f=',f)</script>
</body>

二、关系运算符(比较运算符)

1、关系运算的运算结果:true/false

45>25  --> true       
       45<25  --> false

2、运算符:> 、>=、 < 、<= 、==、 !=

== 只比较值,不比较类型
=== 全等。先比较类型,然后再比较值
!= 只比较值,不比较类型
!== 全不等
<script>//全等。运行算结果为true or falsevar t1 = 5,t2 = '5'console.log(t1==t2)   //只比较值,不比较类型。值是相等的,结果为trueconsole.log(t1===t2)  //先比较类型,然后再比较值。结果为false//全不等。运行算结果为true or falsevar a1 = 12,a2 = '12'console.log(a1!=a2)   //只比较值,不比较类型。值是相等的,结果是falseconsole.log(a1!==a2)  //先比较类型,然后再比较值。a1是Number型,a2是字符串,类型不同,结果是true
</script>

运行结果:

三、逻辑运算符

运算结果是逻辑值(true/false)

1、逻辑与(&&)

表达式1 && 表达式2  -->只有两个表达式的值都为true时,结果为true
    
       注意:&&运算的短路现象:当'表达式1'为false时,不运算'表达式2'

<script>
//&&表示“与”运算同真为真,一假为假var a = 5,b = 15,c c = (a>=5) && (b%3!==0)   //a要大于等于5 且 b对3取余不为0.结果为falseconsole.log(c)
</script>

&&运算的短路现象:

 <script>
//&&与运算的短路现象。当前面的表达是为假时,&&与运算的结果已经出来了,就不运算后面的表达式var a = 5,b = 15,c var flag = falsec = (a!=5)  &&  (flag=(b%3==0))console.log('flag=',flag)console.log('c=',c)</script>

2、逻辑或(||)

表达式1 || 表达式2  -->两个表达式中只要有一个为true,结果就为true
    
       注意:||运算的短路现象:当'表达式1'为true时,不运算'表达式2'

<script>//||或运算,同假为假,一真为真var a = 5,b = 15,c c = (a>=5) ||(b%3!==0)  //a要大于等于5 或 b对3取余不为0.结果为trueconsole.log(c)
</script>

||运算的短路现象:

<script>
//||或运算的短路现象。当前面的表达是为真时,||或运算的结果已经出来了,就不运算后面的表达式var a = 5,b = 15,c var flag = falsec = (a>=5) || (flag=(b%3===0))console.log('c=',c)console.log('flag=',flag)
</script>

 3、逻辑非(!)

取反,true反是false,false的反是true.是单目运算符,必须放在运算对象的左边!表达式

逻辑运算符的优先级顺序:! &&  ||

四、赋值运算符(=)

1、格式

变量 = 表达式     var a= 15

2、要求

(1) ' = '的左边只能是变量,不能是常量或表达式

var a,b            
                       a+b=15            
                       10 = a

(2) 优先级是最低的

3、复合赋值运算符

+=、-=、*=、/=等

<script>
//复合赋值符号,+=、-+、/=var a = 5a+=5  //等价于a=a+5console.log('a=',a)var b = 3,c = 4,d = 5d *= b+c //等价于d = d x (c+b)=5 x (3+4) = 35console.log('d=',d)
</script>

五、位运算符

对数据的二进制位进行运算

1、按位与(&)

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

var a=10,b=15
        
         a&b = 10
         
     10                 00001010
    15             &  00001111
                          --------------------
     10                 00001010

<script>
//&按位“与”运算。相应的二进制位都为1时结果为1,否则结果为0var a = 10,b = 15,cc = a&b  // 先将a,b转化为二进制 0000 1010 & 0000 1111 = 0000 1010 = 10console.log('c=',c)
</script>

  2、按位或( | )

a|b 相对应的二进制位有一位为1时结果为1,都为0时结果为0

var a=10,b=15
       
       a|b = 15
       
 10        00001010
15   |    00001111
      -------------------
 15        00001111

<script>//|按位“或”运算。相应的二进制位有一位为1时结果为1,都为0时结果为0var a = 10,b = 15,ee = a|b  // 先将a,b转化为二进制 0000 1010 | 0000 1111 = 0000 1111 = 15console.log('e=',e)
</script>


3、按位异或(^)

a^b  相对应的二进制位相同为0,不同为1

var a=10,b=15       
       a^b = 5
       
  10         00001010

15   ^     00001111
             -------------------
          5           00000101

<script>
//^按位异或运算。相应的二进制位相同为0,都不同为1var a = 10,b = 15,ff = a^b  先将a,b转化为二进制 0000 1010 ^ 0000 1111 = 0000 0101 = 5console.log('f=',f)
</script>


 4、按位左移(<<)

运算对象 << 位移位数,位移时高位(左边)移出的位舍弃,低位(右边)补0 .

注:对于正整数和无符号数,左移n位等于让运算对象乘以2的n次方

var g = 2,h

h = g<< 1

g = 2,2的二进制为 0000 0010 向左位移一位为 000 0100 = 4

eg:

<script>
//<<按位左移。运算对象 << 位移位数。位移时高位(左边)移出的位舍弃,低位(右边)补0//注:对于正整数和无符号数,左移n位等于让运算对象乘以2的n次方var g = 2,hh = g<<1  //g = 2,2的二进制为 0000 0010 向左位移一位为 000 0100 = 4console.log('h=',h)
</script>

 5、按位右移(>>)

运算对象 << 位移位数,    位移时低位(右边)移出的位舍弃,高位(左边)补0.

注:对于正整数和无符号数,右移n位等于让运算对象除以2的n次方

var k = 10,j

j = k>>1

k = 10,10的二进制为 0000 1010 向左位移一位为 000 0101 = 5

eg:

<script>
//>>按位右移。运算对象 >> 位移位数。位移时低位位(右边)移出的位舍弃,高位(左边)补0//注:对于正整数和无符号数,右移n位等于让运算对象除以2的n次方var k = 10,jj = k>>1  //k = 10,10的二进制为 0000 1010 向左位移一位为 000 0101 = 5console.log('j=',j)
</script>

六、条件运算符(? :)

是一个三目运算符(参加运算的对象有三个)

条件表达式的格式为:  表达式1 ? 表达式2 : 表达式3
        
            先运算'表达式1',若结果为true则选择'表达式2'进行运算,并把'表达式2'的值作为整个条件表达式的值;若'表达式1'的结果为false,则选择'表达式3'进行运算,并把'表达式3'的值作为整个条件表达式的值。

eg:给页面输入一个数,判断他的奇偶。

<script>
//从页面输入一个数,判断它是奇数还是偶数var n = prompt('请输入一个整数')var pn = parseInt(n)var str = (pn%2===0?'是偶数':'是奇数')alert(str)
</script>

JavaScript的运算符相关推荐

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

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

  2. JavaScript instanceof 运算符深入剖析

    简介: 随着 web 的发展,越来越多的产品功能都放在前端进行实现,增强用户体验.而前端开发的主要语言则是 JavaScript.学好 JavaScript 对开发前端应用已经越来越重要.在开发复杂产 ...

  3. JavaScript instanceof 运算符深入剖析【转载】

    http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/ instanceof 运算符简介 在 JavaScript 中, ...

  4. 前端研习录(20)——JavaScript三元运算符

    前端研习录(20)--JavaScript三元运算符 版权声明 三元运算符 版权声明 本文原创作者:清风不渡 博客地址:https://blog.csdn.net/WXKKang   重拾前端记忆,记 ...

  5. javascript关系运算符与逻辑运算符

    原文来自javascript关系运算符与逻辑运算符 一.关系运算符 用于进行比较的运算符称作为关系运算符:小于(<).大于(>).小于等于(<=).大于等于(>=).相等(== ...

  6. 09.JavaScript算术运算符(加、减、乘、除、幂、余)、自增、自减、缩写、位移

    JavaScript算术运算符 章节目录 上一篇:<类型转换> 下一篇:<比较运算符> 运算符是数学计算中的概念,我们从小学就在学习的+.-.*./就是最基础的运算符. 运算符 ...

  7. JavaScript 扩展运算符

    文章目录 扩展运算符 使用扩展运算符复制数组 使用扩展运算符克隆数组 带对象的扩展运算符 剩余参数 参考文档     在本教程中,您将借助示例了解 JavaScript 扩展运算符.     扩展运算 ...

  8. javaScript的运算符和if。。else语句

    比较运算符: ==等于 ===全等 !=不等于 >大于 <小于 >=大于或者是等于 <=小于或者是等于 使用:可以在条件语句中使用比较运算符进行对值比较,然后根据结果采取行动 ...

  9. Javascript 补位运算符

    看到一个题目~~3.14得到是3,一下子有点蒙,之前在Javascript中完全没有见过~这个运算符.经查才知道~是补位运算符,但是跟原码反码补码又有点不同(在反码这一块,不记正负),好吧,大学的东西 ...

  10. javascript 位运算符

    前几天看到国外人在github总结的javascript的奇巧淫技(http://t.cn/herRcq),里面对位运算提到的很多,所以来科普一下javascript的位运算.于是找到了w3cscho ...

最新文章

  1. 原型继承与属性拷贝的混合应用
  2. .net 文件服务器系统,File-service基于ASP.NET Core的可伸缩、通用的文件服务器
  3. apache日志记录格式LogFormat参数说明
  4. 20以内究竟包不包括20?
  5. Flask最强攻略 - 跟DragonFire学Flask - 第四篇 Flask 中的模板语言 Jinja2 及 render_template 的深度用法
  6. django-自定义过滤器
  7. 【kafka】kafka 查看 GroupCoordinator 以及 kafka Group dead 消费组死掉 以及 GroupCoordinatorRequest 使用
  8. c# 上传excel数据总结(一)线程的使用
  9. 23种设计模式(二十一)数据结构之职责链
  10. div 一段时间后自动隐藏
  11. SaaSBase:什么是数云麒麟CRM?
  12. 思科交换机基本配置命令
  13. 谷歌浏览器为什么不能自定义安装路径?
  14. 关于D4RL的agent包的tf.contrib兼容性问题
  15. 2021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num
  16. 戴尔电脑如何下载c语言,EqualLogic PS6000:戴尔的突破、机遇和挑战
  17. PHP unlink的使用
  18. TCP/IP层次模型
  19. Hive 高级篇(调优)
  20. 奇点临近?人工智能v.s.人脑智能

热门文章

  1. 计算机显卡维修,维修常见显卡花屏故障(图解)
  2. 服务器电源改显卡供电稳定吗,发烧友必看:
  3. Java实现导入word文件
  4. 免费生成短网址稳定接口
  5. VS 未将对象引用设置到对象的实例
  6. 特征值特征矩阵与二次型(数学一)
  7. [BZOJ 2460] 元素
  8. mimetic notes
  9. .Net性能测试工具BenchmarkDotnet
  10. Android百度地图开发(二)定位之自动定位及标注(及定位几日内瓦或坐标4.9E-324问题)