js中数据类型分基本数据类型和引用数据类型,然后它们又再细分,那么它们之间的比较又是怎么进行的呢?刚接触这个,真的是把我弄得特别懵,不过总结完以后,做了些练习好了很多,下面我来捋一捋。
==

  • 比较;返回一个布尔值;相等返回true,不相等返回false
  • 允许不同数据类型之间的比较;
  • 如果是不同类型的数据进行,会默认进行数据类型之间的转换;
    console.log(1 == 1);// trueconsole.log(1 == "1");// trueconsole.log(1 == "1px");//falseconsole.log(1 == true);//trueconsole.log([]==false)// trueconsole.log([]==0)// trueconsole.log(100 == false);// falseconsole.log(188 == "188");// trueconsole.log(false == " ");// true
  • 如果是对象数据类型的比较,比较的是空间地址
    console.log({}==[])// falseconsole.log({}=={})// falseconsole.log([]=="")// trueconsole.log([]==0)// true

既然有这么多数据类型,那么它们的比较肯定不是毫无章法的!

  • 数据类型比较规律
  1. 对象 ==布尔: 对象先转字符串再转数字,布尔转数字;
  2. 对象==对象: 比较是空间地址;
  3. 对象==数字 对象先转字符串,再转数字
  4. 对象==布尔: 对象先转字符串,再转数字,布尔转数字
  5. 对象==字符串 : 对象转字符串,字符串比较
  6. 布尔==字符串 : 布尔转数字,字符串转数字
  7. 布尔==数字: 布尔转数字
  8. 字符串==数字: 字符串转数字

    { } 对象toString 转换成字符串结果是"[object Object]"
    !(取反) : 会先把后面的值进行去布尔,然后再取反,最后比较
    0 " " NaN null undefined只有这五个值转布尔是false;

    console.log(![] == [])// trueconsole.log([]==[])// falseconsole.log(![]==false);//trueconsole.log({a:1}=="[object Object]")// trueconsole.log("12px" == 12);

===
绝对比较; 只要数据类型不一样,那么返回false;
console.log(1 === 1);// true
console.log(1 === true);// false
console.log(1 === "1");// false

转载于:https://www.cnblogs.com/wangxingren/p/10110595.html

js之数据类型的比较相关推荐

  1. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  2. js的数据类型--数字

    近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象.所以从这篇文章开始,后面都是关于原生js的一些内容. 这篇文章,我们具体介绍一下js的数据类型其中一种. j ...

  3. js的数据类型,以及如何判断它们是哪种类型

    一.js的数据类型:null . nudefined .number.Boolean.string.array.object 二.判断js的数据类型 (1)值类型 console.log(typeof ...

  4. JS中数据类型、内置对象、包装类型对象、typeof关系

    平时在复习JS基础知识时,经常会遇到JS数据类型.基础数据类型.内置对象.包装类型对象,检测数据类型时,用到的typeof值,感觉都差不多,但是又有差异.今天特地整理下,方便理解. JS数据类型 基础 ...

  5. js基本数据类型和复杂数据类型的区别

    js基本数据类型和复杂数据类型的区别为: let b = {age: 10 }let a = b; a.age = 20; console.log(a); //{ age: 20 } //基本数据类型 ...

  6. ie9无法获取未定义或 null 引用的属性“indexof”_前端JS基础篇(二)JS基本数据类型和引用数据类型及检测数据类型方法...

    JS中的数据类型 (一).基本数据类型(值类型) 1.number:数字 -12.12.5.-12.5 0这些数字都是number: js中增加了一个number类型的数据:'NaN' typeof ...

  7. php 获取 js json数据类型,JS基础-JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换...

    JS的数据类型和访问/流程控制/JSON格式字符串和js对象相互转换 1. JS的数据类型和访问 1.1. 原始类型JS中的原始数据类型有: number , string , boolean ; 声 ...

  8. JavaScript笔记2———js的数据类型

    JS的数据类型有: 1.数值类型(Number):js中所有数字均用浮点数字表示. 可以表示32位(即4字节)的整数,也可以表示64位(即8字节)的浮点数(小数). 也可以用二进制.八进制.十进制.十 ...

  9. js检测数据类型四种办法

    typeof类型检测 作用:用于判断一个一个表达式,(对象或者原始值),返回一个字符串. var a; var b=null; var c=true; var d=1; var e='s'; var ...

最新文章

  1. python视频课程推荐-听说程序员都在用,5款Python开发工具推荐
  2. 错误提示[__NSArrayI addObjectsFromArray:]: unrecognized selector的原因和解决方法
  3. java: 找不到符号 符号: 方法 setOperation(java.lang.String) 位置: 类型为.......
  4. path.join 与 path.resolve 的区别
  5. 原生JavaScript第一篇
  6. 咨询笔记:麦肯锡7步成诗
  7. 时速云入选2018中国企业服务创新成长50强
  8. Ubuntu 修复windows启动项
  9. 4. 简单的webservices 例子
  10. RJ45口线序的理解
  11. HTML,CSS 样式模板大全
  12. 七万字详解paddle-openVINO【CPU】-从环境配置-模型部署全流程
  13. JAVA 实现汉字五行笔画查询
  14. 金山卫士开源软件之旅(九) KUI高级界面(列表控件、树控件例子、超文本、网页控件)
  15. Linux 系统维护命令小结
  16. 易基因|手把手教你做全基因组DNA甲基化测序分析
  17. 虚假发货的定义,虚假发货的情形有哪些,虚假交易的处罚
  18. iOS开发Storyboard中UITableView顶部默认空白 - 芒果iOS
  19. 《深度学习》:CANN训练营_昇腾AI入门课学习笔记(第三章 AI应用开发、第四章 直播视频)
  20. 【第6篇】人工智能(AI)语音测试原理和实践

热门文章

  1. What is WCF
  2. Exchange server 2003迁移到2010无路由组连接器
  3. 如何使用C#进行PPT展示。
  4. MYSQ--SHOW PROFILE Syntax and useing
  5. struts2 配置
  6. Program to reverse the digits of a number
  7. Java盲点:双重检查锁定及单例模式
  8. ASP.NET知识点
  9. python爬取网页url_Python网络爬虫之利用urllib2通过URL抓取网页内容
  10. 怎么把python和pycharm关联_Python3 安装pylint 及与PyCharm关联