1.如果是字符串类型数字做运算 除了+运算之外 其他运算符都会隐式将字符串转为数字,+做拼接
2.一元运算符
+
1.运算
2.字符串拼接
3.取正
4.将其他数据类型转为number类型
console.log(+null,typeof (+null));
console.log(+undefined,typeof (+undefined));
console.log(+true,typeof (+true));
console.log(+'10',typeof (+'10'));
console.log(+{},typeof (+{}));
console.log(+[],typeof (+[]));
== 和 === undefined派生自null
==相等 将数据类型全部转为number类型再进行值得比较
===全等 如果数据类型不一致 直接返回false
==隐式转换
1.数字和字符串进行比较,将字符串转为数字进行比较
2.布尔值和数字进行比较,将布尔值隐式转为数字进行比较
3.布尔值和字符串进行比较 将两者转为数字进行比较
引用数据类型隐式转换
1.将引用数据类型转为基本数据类型调用toString和valueOf 哪一个方法可以转为基本数据类型调用哪一个
可以重写toString和valueOf方法
默认引用数据类型调用toString [object,Object] js自动隐式转换
如果重写了valueOf方法 引用数据类型调用valueOf方法
如果重写了toString 引用数据类型调用toString
如果两者都进行重写 调用valueOf方法
var obj = {
name:'zhangsan',
valueOf(){
return 10
},
toString(){
return 20
}
}
console.log({} + 10);//{}.toString()转为基本数据类型 '[object Object]10'
console.log(obj + 10);// valueOf 20
console.log(obj + 10);// toString 30
console.log(obj + 10);
类型转换
将其他数据类型转为string类型 **********************************
* 1.使用字符串拼接
* 2.使用toString方法
* 3.使用String包装器函数
将其他数据类型转为布尔类型
* 1.Boolean包装器函数
* 2.!!数据类型
将其他类型转为number类型
* 1.在其他数据类型前面+
* 2.Number包装器函数
* 3.parseInt()
* 4.parseFloat()