js中不同类型作比较的规律(布尔运算)
2016-03-21 14:39
337 查看
不同类型间的比较,规律如下
自身做布尔运算的时候的转换
类型 | 类型 | 规律 | 其它说明 |
对象 | 对象 | 比较是不是同一个内存地址 | |
对象 | 字符串 | 对象先转化为字符串,然后做比较 | |
对象 | 布尔类型 | 两边都要先转为数字(false是0,true是1)。是对象类型先隐式调用toString方法,然后再Number() | alert([]==false); alert([]==0) alert([1]==1); alert([1]==true) alert([2]==true) |
对象 | 数字 | 对象要转为数字,再进行比较(对象先隐式调用toString方法转化为字符串,然后再把这个字符串轮化为数字,相当于把这个字符串放到Number这个方法中) | |
数字 | 布尔 | 是进行的数字的比较 | |
数字 | 字符串 | 把字符串转化为数,再比较 | |
布尔 | | 把两边都要转化为数字再进行比较 | |
null | undefined | true | |
null,undefined | 和其它类型 | null和undefined和其它类型比较都是false(这两个对象没toString方法) | alert(null==false) alert(null==0) alert(null=="");; |
类型 | 规律 | 示例 |
object | 都是true | alert(!![]) |
number | 只是0和NaN是false | alert(!!0); |
string | 只有空字符串是false(不是空格字符串) | alert(!!""); |
function | 都是ture | |
null,undefined | 都是false | |
相关文章推荐
- IP地址组成与类型
- Lua教程(二):基础知识、类型与值介绍
- C#中的委托数据类型简介
- C#枚举类型与结构类型实例解析
- C++运行时获取类型信息的type_info类与bad_typeid异常
- 基于C++类型重定义的使用详解
- php获取文件类型和文件信息的方法
- C#自定义类型强制转换实例分析
- TypeScript Type Innference(类型判断)
- javascript中检测变量的类型的代码
- JavaScript学习笔记整理之引用类型
- JavaScript类型系统之正则表达式
- 详解JavaScript中的4种类型识别方法
- JavaScript隐式类型转换
- JavaScript各类型的关系图解
- C#在运行时动态创建类型的实现方法
- C#.net中的类型转换详细介绍
- Flow之一个新的Javascript静态类型检查器
- 深入讲解C#编程中嵌套类型和匿名类型的定义与使用
- 深入理解MySQL的数据库引擎的类型