• JavaScript-比较运算符


    一、概述

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

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

    先从第一个字符开始比较,比较依据(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
      
      '
        123  	' == 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
      

    七、不相等运算符

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

  • 相关阅读:
    移动端链接、点击事件、输入框去除背景高亮
    Quartz.Net与MVC结合定时任务
    Win10上使用SVN遇到的一些问题
    Win7上的ASP.NET MVC3项目在Win10上运行的一个坑
    《SQL必知必会》学习笔记(二)
    《SQL必知必会》学习笔记(一)
    数据库知识总结(表结构操作)
    搭建三层架构(ASP.NET MVC+EF)
    python线程中的全局变量与局部变量
    ADO.NET Entity Framework学习笔录(一)
  • 原文地址:https://www.cnblogs.com/zhuchunyu/p/10648650.html
Copyright © 2020-2023  润新知