zoukankan      html  css  js  c++  java
  • JS中不同类型的值比较问题

    我们比较数据的时候大多是以下两种情况:

    3 > 4 ;
    "m" > "n" ;

    但有时候可能会出现比较符号两侧的数据类型不相同的场景,例如

    5 > "a1";
    "m">true;
    2 < undefined;
    "x" > null;

    看似复杂,实际上只要知道他们的比较规则就简单了。

    当比较的两个值类型不同时,会通过Number()方法将双方转化成数字类型的数值,然后再比较

    要注意的是,如果比较双方有一个为NaN(转化后),则结果均为false

    现在再研究一下各类型通过Number()的转化情况。

    Number(1.5)-->1.5
    Number("")-->0
    Number("11")-->11
    Number("a1")-->NaN
    Number("1a")-->NaN
    Number(true)-->1
    Number(false)-->0
    Number(null)-->0
    Number(undefined)-->NaN
    Number("0x11")-->17

    现在遇到不同类型值的比较问题就清晰了,按照上面的列表对号入座进行转换再比较即可

    例如:

    "test">undefined --> false
    false < "" --> false
    "1" > false --> true
  • 相关阅读:
    Python day43 :pymysql模块/查询,插入,删除操作/SQL注入完全问题/事务/模拟登录注册服务器/视图/函数/存储过程
    docker
    Linux 05
    Linux04
    Linux 03
    Linux 02
    go语言
    go语言
    go语言
    Linux
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/3185503.html
Copyright © 2011-2022 走看看