引用自

http://www.zhufengpeixun.cn/jishuziliao/javaScriptzhuanti/2014-06-14/300.html

不同类型间的比较,规律如下

类型

类型

规律

其它说明

对象

对象

比较是不是同一个内存地址

对象

字符串

对象先转化为字符串,然后做比较

对象

布尔类型

两边都要先转为数字(false是0,true是1)。是对象类型先隐式调用toString方法,然后再Number()

alert([2]==true)未false,转为2==1 false

对象

数字

对象要转为数字,再进行比较(对象先隐式调用toString方法转化为字符串,然后再把这个字符串轮化为数字,相当于把这个字符串放到Number这个方法中)

数字

布尔

是进行的数字的比较

数字

字符串

把字符串转化为数,再比较

布尔

把两边都要转化为数字再进行比较

null

undefined

true

null,undefined

和其它类型

null和undefined和其它类型比较都是false(这两个对象没toString方法),和自身比较是true。

(undefined==undefined); true
(null==null);true

NaN

和其它类型

和说有比较都为false,和自身比较也为fasle,判断是否为NaN使用isNaN()

(NaN==NaN)   false

自身做布尔运算的时候的转换

类型

规律

示例

object

都是true

alert(!![])

number

只是0和NaN是false

alert(!!0);

string

只有空字符串是false(不是空格字符串)

alert(!!"");

function

都是ture

null,undefined

都是false

js不同类型作比较的更多相关文章

  1. JS 强制类型转化

    在Js中, 强制类型转化分为两种情况: 一种是引用类型转化基本类型, 如数组转化成数字:一种是两种不同基本类型之间的转化,如字符串转化为数字.你不能将基本类型转化成引用类型,比如,不可能把数字转化为数 ...

  2. js基本类型存放和对象存放的区别(对象遍历)

    js的基本类型,对象类型的应用在初学的时候,需要自己加以明确,明确了数据类型,在使用过程中才能正确使用变量.如下两个例子是摘自初学时的笔记,为大家提供参考. 1.对象可以存放属性和方法,js基本类型不 ...

  3. 关于js基本类型与引用类型(堆内存、栈内存的理解)

    js 基本类型与引用类型的区别 ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可 ...

  4. js变量类型详解

    <html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...

  5. js中不同类型作比较

    示例: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <met ...

  6. js基本类型 引用类型

    参考 https://segmentfault.com/a/1190000005794070 http://blog.csdn.net/yummy_go/article/details/5050468 ...

  7. js判断类型方法

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null,Boolean, Number和String:复杂数据类型是Object,Object中 ...

  8. js 基本类型与引用类型的区别

    1. 基本类型: string,number,boolean,null,undefined 2. 引用类型: Function,Array,Object 访问方式                   ...

  9. JS数组类型检测

    在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...

随机推荐

  1. Map与JSON Conver

    function strMapToObj(strMap) {     let obj = Object.create(null);     for (let [k,v] of strMap) {    ...

  2. 厉害了,Google大神每天写多少行代码?

    文章转自开源中国社区,编译自:Quora Quora上有个有趣的问题:Google工程师们每天写多少行代码? Google 的 AdMob 全栈工程师 Raymond Farias 在 Quora 发 ...

  3. 创建配置中心服务端(Spring Cloud Config)

    创建配置中心服务端 创建好项目后添加配置文件内容 server.port=9004 spring.application.name=spring-cloud-config-server-01 #git ...

  4. 1-for循环套生成器的面试题

    参考自: https://www.cnblogs.com/shuimohei/p/9686578.html https://segmentfault.com/a/1190000016577353 题目 ...

  5. C#面试 笔试题 四

    1.请你简单的说明数据库建立索引的优缺点 使用索引可以加快数据的查询速度,不过由于数据插入过程中会建索引,所以会降低数据的插入.更新速度,索引还会占磁盘空间. 2.什么是WEB服务控件?使用WEB服务 ...

  6. centos6中安装RabbitMQ

    一.安装环境步骤需知 第一步 安装erlang环境 第二步 安装RabbitMQ 二.安装erlang环境 1)安装编译环境,和基础依赖包 yum -y install make gcc gcc-c+ ...

  7. YARN的伪分布式安装

    前提:安装完HDFS以后 1.修改mapred-site.xml 这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template 所以需要拷贝一份,并重命名为mapred-s ...

  8. ssh-add - 向认证代理添加 RSA 或 DSA 身份数据

    总览 (SYNOPSIS) ssh-add [-lLdDx ] [-t life ] [file ... ] ssh-add -s reader ssh-add -e reader 描述 (DESCR ...

  9. AR/VR增强现实 虚拟现实,嵌入式解决方案探讨

    AR/VR增强现实 虚拟现实,嵌入式解决方案探讨 北京太速科技有限公司 视频增强现实产品与视频矩阵拼接等产品开发,增强现实技术包含了多媒体.三维建模.实时视频显示及控制.多传感器融合.实时跟踪及注册. ...

  10. Spark 读取HBase数据

    Spark1.6.2 读取 HBase 1.2.3 //hbase-common-1.2.3.jar //hbase-protocol-1.2.3.jar //hbase-server-1.2.3.j ...