1.转换成string
JSON字符串化
JSON.stringify(x),可以把x变成字符串;但遇到字符串的时候它也会直接变成字符串,在单引号旁边再加个单引号;遇到不安全的值,比如undefined function 都会变成undefined,但这些在数组里则是null
toString()
(511).toString(): ‘511’; //数字
[1,1,1].toString(): '1,1,1'; //数组toString会去除[]
(function() {}).toString():'function() {}' //原封不动
({a:1}).toString():[object,object] //对象的toString则是直接变成[object,object]
String
toString对于undefined和null是没办法变成字符串的,而String可以,相当于toString的一个升级版
String(null):'null' //null和undefined就直接在外层增加一个双引号
String(undefined):'undefined'
// 其他的都和toString()是一样的
字符串拼接
+左右两边只要有一个字符串类型就会把其他类型变成字符串,再进行拼接
只有+两边都是数字的才能进行算术运算
2.转换成number
Number()
字符串,布尔,undefined,null,数组
字符串:只要有一个非数字的都会变成nan,空字符变成0
Number('') //0
Number('1234aaa') //NaN
// 布尔,true1 false0
Number(true):1
Number(false):0
// undefined会变成NaN null会变成0
Number(undefined) //NaN
Number(null) //0
// 数组,如果有一个元素,并且是数组,那就可以变成数组,其他只能变成NaN
Number([1111]) //1111
Number([111,222]) //NaN
parseInt()
// 前面的字符串是数字,那可以解析出来
parseInt('123.45aaa') //123
parseInt('aaa123') //NaN
parseFloat()
同上,这个是解析字符串的
parseFloat('123.45aaa') //123.45
parseFloat('aaa2134.45') // NaN
3.转换成boolean
0 '' NaN null undefined都会转换成false,其他则是会转换成true
!
let sss = '123'
console.log(!sss) // false
console.log(!!sss) //true
4.隐式类型转换
JavaScript 中每个值隐含自带ToPrimitive
方法,用来将值 (无论是基本类型值还是对象)转换为基本类型值。如果值为基本类型,则直接返回值本身;
5.<>比较符
如果两边都是字符串,那就直接比较
如果有数字,就转化为数字比较
如果是对象,会被ToPrimitive转换成基本类型