1.隐式转换,系统利用一些符号进行默认的转换。
主要就是运算符:
1.数学运算符: + - * / %
2.比较运算符:> < == <= >=
1.如果两个字符串格式的数字比较,字符串的数字会转化成真正的数字;
2.如果是两个字符串进行比较,会对字符串的字符编码大小进行比较,从第一项字符开始判断;
3.如果字符串格式的数字和数字类型的数字比较,字符串的数字会转化成真正的数字;
4.如果不是数字或者字符串格式的数字,那么就会按照unicode编码进行比较;
5.比较运算符具有隐式转换的功能,比较的核心是数字类型,如果两端的数据类型不一样,等于运算符就会将两端的数据优先转换为数字进行比较
! (非) 会将任意的值转化为布尔值;
‘ ‘ 单引号会将任意类型转化为字符串;
5.
6.一元操作符 ++ —也可以对字符串类型的数字进行转换为数字类型;
2.显示转换:利用系统提供的函数强制转换或手动转换
1.下面三个部分,可以用 + , ‘ ‘ , ! 取代
Number():将括号里的值转换为数字,类似于+号
String():将括号里的值转换为字符串,类似于 ‘ ‘ / “ “ 号;
Boolean():将括号里的值转换为布尔值,类似于 添加了两个 !! 号;
2.介绍window下面两个方法,window作为对象可以省略;
parselnt()、parseFloat()
1.parselnt():将括号里的数字取整,同时如果括号里面是字符串格式,能从开始位置获取字符串格式的数字,直到遇到非字符串格式的数字结束;
2.parseFloat():获取字符串格式的数字,包括小数部分。其他和parselnt差不多;
3.toFixed():方法,截取小数取到多少位数;
总结
- 比较运算符始终返回布尔值。
- 字符串的比较,会按照“词典”顺序逐字符地比较大小。
- 当对不同类型的值进行比较时,它们会先被转化为数字(不包括严格相等检查)再进行比较。
- 在非严格相等 == 下,null 和 undefined 相等且各自不等于任何其他的值。
- 在使用 > 或 < 进行比较时,需要注意变量可能为 null/undefined 的情况。比较好的方法是单独检查变量是否等于 null/undefined。
一些陷阱的数据转换
转换为数字类型
undefined 转化为数字类型时为 NaN
null 转化为数字类型时为 0
‘’(空字符串) 转化为数字类型时为 0
转换为布尔类型
‘ ‘(非空字符串,即使其中仅含有一个空格)转化为布尔值时为 1
‘’(空字符串)、null、undefined、0 和 NaN 都会被转化为 false,(因此它们被称为假值)