zoukankan      html  css  js  c++  java
  • 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
      

    七、不相等运算符

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

  • 相关阅读:
    vue Can't resolve 图片
    TP-LINK WR740N中继设置,AP设置,设置后不能上网,亲测有效
    vue VSCode 开发设置(html自动补全、eslint保存时格式化、vetur 格式化html)
    不再手写import
    vscode vuter的快捷键 关键字
    prototype是什么?
    真有效值与有效值概念
    现代文经典
    古文经典
    最后,我想对你说一句:我爱你
  • 原文地址:https://www.cnblogs.com/zhuchunyu/p/10648650.html
Copyright © 2011-2022 走看看