一元操作符

一元操作符在处理所有的非数值时,相当于将该值经过Number()转换成数值,如 +"12" 将把 "12" 字符串转换为数字。

位操作符

    1. 负数在计算机上以二进制补码的形式储存,补码等于原码的反码加1,ECMAScript在以二进制字符串形式输出一个负数时,我们看到的只是这个负数绝对值的二进制码前面加上一个符号(而不是输出32位二进制)如:

      var num = -18;
      alert(num.toString(2)); // "-10010"

        

    2. 对特殊的NaN和Infinity值应用位操作符时,这两个值都会被当成0来处理。
    3. 进行有符号的右移(>>)操作时,其左边以符号位的值来填充空位,进行无符号的右移(>>>)操作时,以0来填充空位.

布尔操作符

逻辑非

   对非布尔类型的值进行逻辑非操作时,会先使用Boolean()将值转换为布尔类型。

逻辑与

    1. 属于短路操作,且并不一定返回布尔类型。
    2. 如果第一个操作数用Boolean()函数可以转换为true时,返回第二个操作数。
    3. 如果第一个操作数是false,null,NaN,undefined时,返回第一个操作数。

逻辑或

    1. 原理跟逻辑与差不多。
    2. 我们可以利用下面的例子来避免为变量赋null或undefined值,如:
var myObject = preferredObject || backupObject

  其中若第一个变量存在则优先赋予myObject第一个变量,不然赋予第二个变量

乘性操作符

注:如果参与乘性计算的某个操作符不是数值时,后台会先使用Number()转型函数将其转换为数值。

乘法

    1. 如果有一个操作数是NaN,则结果是NaN;
    2. 如果是Infinity与0相乘,则结果是NaN;
    3. 如果Infinity与非0数值相乘,则结果是Infinity或-Infinity;
    4. 如果是Infinity与Infinity相乘,则结果是Infinity。

除法

    1. 如果有一个操作数是NaN,则结果是NaN;
    2. 如果是Infinity被Infinity除,则结果是NaN;
    3. 如果是零被零除,则结果是NaN;
    4. 如果是非零的有限数被零除,则结果是Infinity或-Infinity;
    5. 如果是Infinity被任何非零数值除,则结果是Infinity或-Infinity。

求模

    1. 如果被除数是无穷大值而除数是有限大值,则结果是NaN;
    2. 如果被除数是有限大的数值而除数是零,则结果是NaN;
    3. 如果是Infinity被Infinity除,则结果是NaN;
    4. 如果被除数是有限大的数值而除数是无穷大的数值,则结果是被除数;
    5. 如果被除数是0,则结果是0。

加性操作符

加法

如果有一个操作数是字符串,则将另一个操作数使用String()转型函数转换为字符串,然后将两个字符串拼接起来;

减法

如果操作数是非数值,后台调用Number()转型函数先将其转换为数值在进行运算。

关系操作符

  1. 如果两个操作数是数值,则执行数值比较;
  2. 如果两个操作数都是字符串,则比较两个字符串对应的字符编码值;
  3. 如果一个操作数是数值,则后台将使用Number()函数将其转换为数值再比较;
  4. 如果一个操作数是对象,则调用对象的valueOf()方法,用得到的结果按照前面的规则进行比较,如果对象没有valueOf方法,则调用toString()方法,并用得到的结果进行比较。
  5. NaN作为操作数时,NaN < 3 和 NaN >= 3 皆返回false。

相等操作符

注:相等和不相等---先转换再比较,全等和不全等---仅比较而不转换

相等和不相等

    1. null和undefined是相等的;
    2. 如果只有一个操作数是数值,则将另一个操作数转换为数值再比较(偏向于比较数字);
    3. 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true。

条件操作符

如下所示:error这个变量未定义,但是并未抛出错误。

abc == true ? 12 : error

in运算符

  in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的右操作数是一个对象,如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true。

instanceof运算符

  instanceof运算符希望左操作数是一个对象,右操作数标识对象的类。如果左侧的对象是右侧类的实例,则表达式返回true。所有的对象都是Object的实例。如果instanceof的左操作数不是对象的话,instanceof返回false,如果右操作数不是函数,则抛出一个类型错误异常。

最新文章

  1. textarea元素只设置高可变,宽固定
  2. 推薦使用 Microsoft Anti-Cross Site Scripting Library v3.1
  3. x264 - 高品质 H.264 编码器
  4. 黑马程序员_JAVA基础知识总结3
  5. java环境
  6. 【C#基础】static 关键字用法小结
  7. 固定滚动外层div的css
  8. 安装开源项目 MultiType (基于 RecyclerView)出现的各种问题 -- 自己的第一篇博客
  9. Struts2 控制文件上传下载
  10. ASP.NET WebApi系列
  11. JN_0007:微信昵称设置小数字
  12. AtCoder Grand Contest 031 (AGC031) D - A Sequence of Permutations 其他
  13. Centos7安装jdk-12的详细过程
  14. Java Web组件Servlet、Filter、Listener
  15. 2018阿里云短信发送DEMO接入简单实例
  16. JWT实战
  17. oracle-ords
  18. ifcfg-eth配置详解(CentOS6)
  19. linux问题解答
  20. 联想拯救者15-isk安装固态硬盘与系统迁移教程

热门文章

  1. ThreadPoolExecutor(转)
  2. nodejs中的 Cannot read property&#39;text&#39; of undefined 问题
  3. bootstrap 之 列表组件使用
  4. 注册宝第五期beta2插件模块下载及说明
  5. Windows下安装PHP扩展及资源下载地址(memcached为例)
  6. [转]activiti5用户任务分配
  7. MySQL的表分区(转载)
  8. css3实现一个div设置多张背景图片及background-image属性
  9. 如何看linux是32位还是64位
  10. Lake Counting--poj2386