1 变成number
1.1 Number()
Number("1"); //1
Number(null); //0
Number(undefined); //NaN
Number(true); //1
Number(false); //0
Number({name:'jack'}); //NaN
1.2 parseInt()
parseInt("1",10); //1
parseInt(null,10); //NaN
parseInt(undefined,10); //NaN
parseInt(true,10); //NaN
parseInt(false,10); //NaN
parseInt({name:'jack'},10); //NaN
1.3 -0
"1" - 0; //1
null - 0; //0
undefined - 0; //NaN
true - 0; //1
false - 0; //0
{name:'jack'} - 0; //-0
1.4 parseFloat()
2 变成string
2.1 toString()
var a = 1;
a.toString(); //"1"
var a = null;
a.toString(); //Uncaught TypeError:Cannot read property 'toString' of null(…)
var a = undefined;
a.toString(); //Uncaught TypeError:Cannot read property 'toString' of null(…)
var a = true;
a.toString(); //"true"
var a = false;
a.toString(); //"false"
var a = {name:'Jack'};
a.toString(); //"[object Object]"
2.2 +空字符串(注意是空字符串不是空格字符串,中间没有空格)
1 + ""; //"1"
null + ""; //"null"
undefined + ""; //"undefined"
true + ""; //"true"
false + ""; //"false"
var a = {name:"Jack"};
a + "" //"[object Object]"
3 变成Boolean
3.1 Boolean()
Boolean(1) //true
3.2 两次取反
!!1 //true
关于具体值在https://blog.youkuaiyun.com/qq_37298706/article/details/81672507中有说明
4 关于parseInt()
parseInt("1a1") //1
parseInt("11a") //11
一直读到不能转成int的字符为止