1.自动数据类型转换 --- 隐式转换
(1)将其他类型的数据转换为string: + +=
//如果一个数据和字符串相加就是进行---字符串拼接
//所以我们可以通过使用 空字符 ''+ 加上其他类型的数据,实现转换成string类型
举个栗子:
var n1 = 890
var sum1 = n1 + '123';
console.log(sum1);//'890123'
console.log('' + n1);//'890'
console.log(true + '');//'true'
n1 += '';
console.log(n1);//'890'
console.log(null + '');//'null'
(2)将其他类型的数据转换为 number:
+ - * / % > < >= <=
== != += -= /= %= ++ --
// + :
//非字符串的数据在进行加法运算时,会将这个数据转换成number类型计算
//需要通过+号将字符串转换成number类型,可以在字符串前书写一个+号,这个加号是不参与运算,只负责将这个字符转换成number
举个栗子:
console.log(5 + true);//6
console.log(5 + +'123');//128
console.log(+'hello');//NaN
console.log(+'78');//78
// - * / += -= *= /= %= ++ -- :
举个栗子:
console.log(20 - true);//19
console.log(20 - '11');//9
console.log(5 * '5');//25
console.log(10 / 'abc');//NaN
console.log(48 % '5');//3
var n = '23';
n--;
console.log(n);
// > < >= <= == != :
举个栗子:
console.log(23 > '18');//true
console.log(true == 1); //true
(3)将其他类型的数据转换为:Boolean: !(取反)
//针对一个值进行取反,得到的是一个布尔值,同时是这个布尔值的相反值。
// 如果需要得到一个值对应的布尔值,可以取反再取反
举个栗子:console.log(!12);//false
//12本身是true 但是12他!取反了1次 那么就变成了false
console.log(!!12);//true
//12本身是true 但是12他!!取反了2次 那么就变成了true
console.log(!undefined);//true
//undefined 比较特殊 本身就是没有就是false 但是他进行!取反 那么就变成了true
console.log(!!0);//false
//0 比较特殊 本身就是没有就是false 但是他进行!!取反 那么就变成了false
小试牛刀:var sum = 10 - '23' * 2 + !18 - '21';
//=10-'23'*2+false-'21'
//10-23*2+false-'21'
//10-46+false-'21'
//-36+0-21
//-36-21
// -57
console.log(sum);//-57