一、概述

  • > 大于运算符
  • < 小于运算符
  • <= 小于或者等于运算符
  • >= 大于或者等于运算符
  • == 相等运算符
  • === 严格相等运算符
  • != 不相等运算符
  • !== 严格不相等运算符

二、非相等运算符:字符串的比较

先从第一个字符开始比较,比较依据(Unicode的大小)

"cat" > "dog";  // false

三、非相等运算符:非字符串的比较

如果两个运算子之中,至少有一个不是字符串,需要分成以下两种情况

  • 原始类型值:两个都是原始类型的值,则先转为数值再比较

    5 > '4' // true
    // 等同于 5 > Number('4')
    // 即 5 > 4 true > false // true
    // 等同于 Number(true) > Number(false)
    // 即 1 > 0 2 > true // true
    // 等同于 2 > Number(true)
    // 即 2 > 1
  • 对象:如果运算子是对象,会转为原始类型的值,再进行比较。

四、严格相等运算符

  • == :比较两个值是否相等
  • === : 比较两个值是否相等。通过是同一类型数据,就是True,如果不是返回false
NAN == NAN;   // false
[] === []; // false
{} === {}; // false
-----------------------
null === null; // true
undefined === undefined; // true

五、严格不相等运算符

它的算法就是先要求严格相等运算符的结果,然后返回相反值

1 !== "1";   // true

六、相等运算符

  1. 同类型的数据做比较的话,就不需要进行转换

  2. 原始类型值,转换为数值类型再进行比较

    1 == true // true
    // 等同于 1 === Number(true) 0 == false // true
    // 等同于 0 === Number(false) 2 == true // false
    // 等同于 2 === Number(true) 2 == false // false
    // 等同于 2 === Number(false) 'true' == true // false
    // 等同于 Number('true') === Number(true)
    // 等同于 NaN === 1 '' == 0 // true
    // 等同于 Number('') === 0
    // 等同于 0 === 0 '' == false // true
    // 等同于 Number('') === Number(false)
    // 等同于 0 === 0 '1' == true // true
    // 等同于 Number('1') === Number(true)
    // 等同于 1 === 1 '\n 123 \t' == 123 // true
    // 因为字符串转为数字时,省略前置和后置的空格
  3. 对象与原始类型值比较:将对象转换为原始类型值再比较

    // 对象与数值比较时,对象转为数值
    [1] == 1 // true
    // 等同于 Number([1]) == 1 // 对象与字符串比较时,对象转为字符串
    [1] == '1' // true
    // 等同于 String([1]) == '1'
    [1, 2] == '1,2' // true
    // 等同于 String([1, 2]) == '1,2' // 对象与布尔值比较时,两边都转为数值
    [1] == true // true
    // 等同于 Number([1]) == Number(true)
    [2] == true // false
    // 等同于 Number([2]) == Number(true)
  4. null,undefied

    null == undefied;  // true

七、不相等运算符

它的算法就是先求相等运算符的结果,再取相反值。

JavaScript-比较运算符的更多相关文章

  1. JavaScript instanceof 运算符深入剖析

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

  2. javascript算术运算符详解

    算术运算符 +.-.*./.%.++.-- ++.--分为前缀形式和后缀形式 前缀形式先加减1在执行 后缀形式先执行再加减1 注意 +号用来连接两个字符串 只要+连接的操作数中有一个是字符串型,JS就 ...

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

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

  4. JavaScript instanceof 运算符

    instanceof运算符简介 在 JavaScript 中 判断一个变量的类型常常会用 typeof 运算符 判断一个实例是否属于某种类型会使用instanceof 与 typeof 方法不同的是, ...

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

                                    运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为 ...

  6. javaScript常用运算符和操作符总结

    javaScript常用运算符和操作符总结 类别 操作符 算术操作符 +. –. *. /. %(取模) 字符串操作符 + 字符串连接   +=字符串连接复合 布尔操作符 !. &&. ...

  7. javascript(六)运算符

    运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和" ...

  8. JavaScript 算术运算符

    处理数值的典型情景是数值计算. ㈠JavaScript 算术运算符 算术运算符对数值(文字或变量)执行算术运算. ㈡算术运算符 典型的算术运算会操作两个数值. ⑴这两个数可以是字面量: var x = ...

  9. JavaScript多元运算符

    JavaScript多元运算符   JavaScript多元运算符 **实例:**` function test(9){ var a=4,b=11; return p > 1 ? p<b ...

  10. javascript中运算符的优先级

    运算符优先级 JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低 ...

随机推荐

  1. FastJson 常见问题

    一.场景 在使用序列化的时候,Object里包含了两个一模一样的对象,所以解析的时候,只有第一个能解析出来,另外一个无法显示. 查看了json的序列化源码,发现是DisableCircularRefe ...

  2. js实现数组内数据的上移和下移

    var swapItems = function(arr, index1, index2){ arr[index1] = arr.splice(index2,1,arr[index1])[0] ret ...

  3. Python爬虫教程-20-xml 简介

    本篇简单介绍 xml 在python爬虫方面的使用,想要具体学习 xml 可以到 w3school 查看 xml 文档 xml 文档链接:http://www.w3school.com.cn/xmld ...

  4. EF多实体对应单表

    1.EF多实体对应单表 适用场景:单数据库表,表数据有较长用字段,有不常用或者大数据字段. 2.建表语句 CREATE TABLE [Chapter2].[Photograph]( ,) primar ...

  5. mybatis ${}使用注意事项

    ${key}有值, ${key,jdbcType=VARCHAR}没有值 总结:${}使用时不要指定jdbcType等属性,指定这些反而取不到值,这也是跟#{}的一个区别.以上只是开发中遇到的情况,具 ...

  6. CCF201412-1 门禁系统

    试题编号: 201412-1 试题名称: 门禁系统 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况.每位读者有一个 ...

  7. JDBC mysql驱动

    在用JDBC连接MySQL数据库时,需要使用驱动 mysql-connector-java-5.1.41-bin.jar 在本地java应用程序中,只需将jar包导入到项目library中即可, 而在 ...

  8. [EffectiveC++]item35:考虑virtual函数以外的其他选择

    本质上是说了:   Template Pattern & Strategy Pattern 详细见<C++设计模式 23种设计模式.pdf 55页> 宁可要组合 不要继承. ——— ...

  9. 我不 大冰2017新书pdf免费下载

    善意能消戾,善意能得缘,善意能带业往生,善意能回头是岸.善意能够帮人捕捉并建立起独特的幸福感. “我不”是一种善意坦然,也是一种善意的随缘,更是一句善意的自省. <我不>——百万级畅销书作 ...

  10. 单片机课程设计>八音盒

    2017—2018学年度第一学期 <单片机原理及应用>作品考试 八音盒 2017-2018-1<单片机原理及应用>作品设计提交文档 一.作品设计目的 1.利用51单片机的各个部 ...