目录

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

(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. SpringBoot中的线程池,你真的会用么?
  3. 8月份Github上最热门的Python开源项目
  4. UNIX网络编程 第3章 套接字编程简介
  5. memchace监控统计
  6. 查看表扫描次数,并对比索引对表查询的作用
  7. 时间序列模式识别_空气质量传感器数据的时间序列模式识别
  8. @MapperScan和@ComponentScan使用问题
  9. springboot整合elasticjob
  10. 中国最有名的8个程序员:不只雷军、张小龙,其中3人都当过首富!
  11. Android 图片圆角的设置
  12. 13. 星际争霸之php设计模式--正面模式
  13. lvm讲解与磁盘挂载问题排除
  14. javaweb前台对参数加密,后台解密,避免出现中文乱码
  15. php冗余,php – 如何使用规范化删除冗余?
  16. 企业微信(WeCoom)私有化客户端Api解决方案
  17. 神经网络为什么叫神经网络【一文看懂】
  18. 8位并行左移串行转换电路_单片机试题
  19. JS pos机- V0.2
  20. 自制动漫小姐姐图片api

热门文章

  1. 【TV】海信在CES发布电视新品
  2. 猿代码首届团课免单节火热进行中!|猿代码科技
  3. Synology-群晖(二):解决VideoStation检索不到海报封面问题
  4. 解决远程访问虚拟机mysql失败问题
  5. pythonchallenge(5-9)
  6. Qt扫盲-Qt5 的简历
  7. 2016年值得瞩目的五个IT安全趋势
  8. ffmpeg推流时报错 Unknown encoder 'libx264'
  9. Win10与Ubantu双系统安装
  10. 第七次财富风暴即将来袭—第七次发财机会马上就要来了!你准备好了吗?