• JavaScript 比较运算符 特殊字符 纯数字字符串


    比较运算符: >, <, ==, ===, >=, <=, !=, !==, 

    和上一章的数字运算符一样,正常的大家都知道,这里还是主要讲一讲纯数字字符串 和 特殊字符(boolean,null, undefined, infinity, NaN)等

    特殊情况:

    1. 纯数字字符串与数字进行比较,会进行隐式计算。

    console.log('123' < 12); //result: true
    
    console.log('123' > 12); //result: false

    2. 特殊字符与数字比较,同样会隐式计算。

    2.1 boolean, null

    它会将 true = 1; false=0; null=0;

    console.log(true < 12); //result: true
    
    console.log(true  > 12); //result: false
    
    console.log(true == 1); //result: true
    
    console.log(false == 0); //result: true

    但是这里null有个特殊情况。 当null==0的时候,按理说应该是true,但是它的结果是false。 

    console.log(null== 0); //result: false
    
    console.log(null >= 0); //result: true
    
    console.log(null <= 0); //result: true

    ===在判断两边时,会尽可能的让两边关系不相等. ===需要判断类型

    console.log(“12” === 12); //result: false
    
    console.log(12 === 12); //result: true
    
    console.log(true === 1); //result: false
    
    console.log(false === 0); //result: false
    
    console.log(null === 0); //result: false

    2.2 NaN, Infinity各自和自己比较

    console.log(NaN > NaN ); //result:  false
    console.log(NaN < NaN); //result:  false
    console.log(NaN == NaN); //result: false
    console.log(NaN != NaN); //result: true
    console.log(NaN === NaN); //result: false
    console.log(NaN !== NaN); //result: true
    
    console.log(Infinity> Infinity); //result:  false
    console.log(Infinity< Infinity); //result:  false
    console.log(Infinity== Infinity); //result: true
    console.log(Infinity!= Infinity); //result: false
    console.log(Infinity=== Infinity); //result: true
    console.log(Infinity!== Infinity); //result: false

    3. 非纯数字的字符串比较,不是比较字符串的长短,而是比较字符串的Unicode编码(顺序: 先数字,再大写字母,再小写字母;即数字<大写<小写),顺序靠前小于顺序靠后的。 如果第一个字符比较相同的话,就一次往后比较。

    console.log ("12" < "123"); //result: true
    
    console.log ("12345689" < "0"); //result: false
    
    console.log ("12" < "2"); //result: true
    
    console.log ("A" < "a"); //result: true
    
    console.log ("normal" < "north"); //result: true

    那么这里如果比较 3>2>1,他的结果是什么呢?

    其实他的运算顺序是 (3>2)>1 

               ==> true>1

                ==> 所以结果当然是......false

  • 相关阅读:
    局域网内其他机器访问本机80网站失败记录
    百度经纬度获取
    Win10安装安卓ADB驱动
    SQL Server 查看数据库是否存在阻塞
    IP地址接口小结
    雄冠条码PV系统-2016-05-17-收获
    slf4j MDC使用
    Java NIO之通道
    Java NIO之缓冲区
    记一次ThreadPoolExecutor面试
  • 原文地址:https://www.cnblogs.com/ningxin/p/10101462.html
Copyright © 2020-2023  润新知