JS隐式转换

一  转化为Number 

 

 console.log( typeof(+'1'),+'1');// number 1

 console.log( typeof(1+'1'),'1'+1);// string 11

 console.log( typeof(1-'1'),'1'-1);// number 0

 console.log(typeof(-'2'),-'2');//number -2

 console.log( typeof(1*'1'),'1'*1);// number 1

 console.log( typeof(1/'1'),'1'/1);// number 1

+号只有当作正号 使用时才会有隐式类型转换为Number 的效果 

 console.log(+[]);//0

空数组转换为Number 为0    因为需要首先将空数组 [] 转换为字符串,结果是空字符串 ""。然后,将空字符串 "" 转换为数字类型时,会得到数字 

所以 console.log(0==[]) // true

console.log(+{}); //NaN 

空对象转化为NaN                  因为需要首先将对象 {} 被转换为字符串时,它的默认字符串表示是 "[object Object]"。然后,将该字符串转换为数字类型时,会得到特殊的结果 NaN

console.log(+true);//1

布尔值true转化为Number为1 

console.log(+false);// 0

布尔值false 转化为Number为 0

 console.log(+null);//0

 null 转化为Number 为0

console.log(+undefined);// NaN

undefined转化为Number 为NaN

二 转化为String

 console.log(typeof(123+'1'),123+'1');//string 1231

 console.log(typeof(true+'1'),true+'1') //string true1

 console.log(typeof(false+'1'),false+'1')//string false1

 console.log(typeof(null+'1'),null+'1') //string null1

 console.log(typeof(undefined+'1'),undefined+'1');//string undefined1

三 转化为Boolean

 console.log(!!1);//true

 console.log(!!0);//false

 console.log(!!3.1);//true

 console.log(!!-3.1);//true

 console.log(!!NaN);//false

Number 类型转化为Boolean除了0和NaN为false 其他都为true

 console.log(!!'1');//true

 console.log(!!'ww');//true

 console.log(!!'null');//true

 console.log(!!' ');//true

 console.log(!!'');//false

String类型转化为Boolean 除了空字符串'' 为false 其他都为true

 console.log(!![]);//true

 console.log(!!{});//true

 console.log(!!null);//false

 console.log(!!undefined);//false

空数组和空对象转化为Boolean  都为true

null和undefined 转化为Boolean 都为false

你可能感兴趣的:(javascript,前端,vue.js)