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

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

JS中不同类型的值比较问题的更多相关文章

  1. js中boolean类型的理解

    <html> <head> <script type="text/javascript"> var x="12"; aler ...

  2. JS中基本类型与包装类型的关系

    对于JS中一些类型的转化的东西,自己测试并得出的结论,有错误的地方请大大们留言. 不多废话,直接贴代码,测试请直接拷贝全部代码: <!DOCTYPE html> <html> ...

  3. 推断js中的类型:typeof / instanceof / constructor / prototype

    怎样推断js中的类型呢,先举几个样例: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = n ...

  4. js中属性类型:数据属性与访问器属性

    js中属性类型分为两种:数据属性和访问器属性 在js中,对象都是由名值对构成的,名:就是我们所说的属性名,值就是属性对应的值(基本值.对象.方法). ECMA-262第5版定义了只有内部才用的特性,描 ...

  5. JS中Float类型加减乘除 修复 JQ 操作 radio、checkbox 、select LINQ to SQL:Where、Select/Distinct LINQ to SQL Count/Sum/Min/Max/Avg Join

    JS中Float类型加减乘除 修复   MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄Ov ...

  6. js中其他数据类型的值转为字符串的相关总结

    有这样一个面试题: 此题考查的是其他类型的值转换为字符串后的结果 下面我们就由此来总结一下其他类型的值转为字符串后的值都是什么? 从上面的实例可以看出,基本数据类型的值转换成字符串都如我们预期的那样. ...

  7. JS中数值类型的本质

    一.JS中的数值类型 众所JS爱好友周知,JS中只有一个总的数值类型--number,它包含了整型.浮点型等数值类型.其中,浮点数的实现思想有点复杂,它把一个数拆成两部分来存储.第一部分是有效位数,也 ...

  8. JS中怎么调用<%%>的值

    JS中怎么调用<%%>的值 示例代码一: <% String usercode = request.getParameter("usercode");//用req ...

  9. 关于js中定时器的返回值问题

    在js中,我们常常会用到定时器来处理各种各样的问题,当我们需要清除定时器的时候,我们常常会定义一个值来接受定时器的返回值,然后再把定义好的这个值写到清除定时器的括弧后面,如: var times = ...

随机推荐

  1. java.lang.IllegalArgumentException: Request header is too large的解决方法

    <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout=&q ...

  2. Linux驱动platform

    platform device<==> platform bus <==> platform driver 转自:platform设备驱动全透析 宋宝华 http://blog ...

  3. LNMP环境搭建之php安装,wordpress博客搭建

    LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...

  4. 文本信息检索——布尔模型和TF-IDF模型

    文本信息检索--布尔模型和TF-IDF模型 1. 布尔模型 ​ 如要检索"布尔检索"或"概率检索"但不包括"向量检索"方面的文档,其相应的查 ...

  5. 阿里云服务器---centos编译安装ffmpeg

    环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...

  6. c语言三元组

    // Triplet.cpp : 定义控制台应用程序的入口点.//#include "stdio.h"#include "stdlib.h"#define OK ...

  7. linux 下配置jdk

    去java官方地址下载相应的源码包我下载的是1.8.0放在usr/local目录下 export JAVA_HOME=/usr/local/jdk1.8.0export PATH=$JAVA_HOME ...

  8. iOS CLLocationManager定位

    本文转载至 http://www.tuicool.com/articles/7JBRZn 在iOS8以前的版本中,我们使用CLLocationManager定位是没有问题的,最近在iOS8系统中却无法 ...

  9. Myeclipse 选中高亮

    打开显示功能 选择Windows->Preferences->Java-> Editor-> Mark Occurrences ,勾选选项.这时,当你单击一个元素的时候,代码中 ...

  10. EasyPlayer RTSP播放器OCX RegSvr32注册报错,DllRegisterServer调用失败,错误代码为0x80040200 解决方法

    问题描述 模块"EasyPlayer-RTSPWebActiveX.ocx" 已加载,但对DLLRegisterServer调用失败,错误代码为0x80040200. 解决方法 是 ...