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

  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/ningxin/p/10101462.html
Copyright © 2011-2022 走看看