ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**类型转换**: 转字符串:toString()方法 与String()函数 注意:null和undefinded没有toString() ``` 123.toString();//报错js中的整数其实是省略.0的浮点数123.toString()会将它当作浮点数即123.xxx而.xxx必需是数字否则就报错 123..toString()//"123" (123).toString()//"123" 1.2.toString()//"1.2" true.toString()//"true" a.toString()//"false" null.toString()//Uncaught TypeError: Cannot read property 'toString' of null undefined.toString()//Uncaught TypeError: Cannot read property 'toString' of undefined NaN.toString();//"NaN" Infinity.toString();//"Infinity" new Object().toString()//"[object Object]" [2,3,[4,5]].toString()//"2,3,4,5" function(){}.toString()//"function (){}" String(true)//"true" String(false)//"false" String(123)//"123" String(null)//"null" String(undefined)//"undefined" String(NaN);//"NaN" String(Infinity)//"Infinity" String(new Object())//"[object Object]" String([2,3,[4,5]])//"2,3,4,5" String(function(){})//"function (){}" ``` 转换数值:Number()函数与parseInt()函数 ``` Number(NaN)//NaN Number(Infinity)//Infinity Number(true)//1 Number(false)//0 Number("123")//123 Number("")//0 Number(" ")//0 Number("abc")//NaN Number("abc8")//NaN Number("8abc")//NaN Number(null)//0 Number(undefined)//NaN Number(new Object())//NaN Number([2,3,[4,5]])//NaN Number(function(){})//NaN ``` ``` parseInt(NaN)//NaN parseInt(Infinity)//NaN parseInt(true)/NaN parseInt(false)//NaN parseInt("123")//123 parseInt("")//NaN parseInt(" ")//0 parseInt("abc")//NaN parseInt("abc8")//NaN parseInt("8abc")//8 parseInt(null)//NaN 注意null区分大小写必须是小写 parseInt(undefined)//NaN parseInt(new Object())//NaN parseInt([2,3,[4,5]])//2 parseInt(function(){})//NaN //parseInt的第二个参数指定第数字的进制 //声明16进制 var a="0x10";//16 parseInt(a,10)//0 parseInt(a,16)//16 //声明8进制 var a="070";//56 parseInt(a,10)//70 parseInt(a,8)//56 ``` 转换浮点数:parseFloat() ``` a=parseFloat(NaN)//NaN a=parseFloat(Infinity)//NaN a=parseFloat(true)//NaN a=parseFloat(false)//NaN a=parseFloat("123")//123 a=parseFloat("123.456")//123.456 a=parseFloat("")//NaN a=parseFloat(" ")//NaN a=parseFloat("abc")//NaN a=parseFloat("abc8")//NaN a=parseFloat("8abc")//8 a=parseFloat("0.8abc")//0.8 a=parseFloat(null)//NaN 注意null区分大小写必须是小写 a=parseFloat(undefined)//NaN a=parseFloat(new Object())//NaN a=parseFloat([2,3,[4,5]])//2 a=parseFloat(function(){})//NaN ``` 注意浮点数计算不精确 ~~~ var num1=3.3; var num2=7.17; var ret=parseFloat(num1)+parseFloat(num2); //10.469999999999998 //这里可以使用toFixed四舍五入为指定小数位数的数字 var ret=(parseFloat(num1) + parseFloat(num2)).toFixed(2);//10.47 ~~~ 转换布尔:Boolean() 数字转布尔:除了0和NaN为false,其他都为true 字符串转布尔:除了空字符串("")为false,其余都为true null和undefined转布尔为false ``` var a="123";//true a="0";//true a="-123";//true a="abc";//true a="";//false a=" ";//true a="true";//true a="false";//true a=123;//true a=-123;//true a=123.456;//true a=0;//false a=NaN;//false a=Infinity;//true a=NaN;//fasle a=undefined;//fasle a=new Object();//true a=[2,3,[4,5]];//true a=function(){};//true a=Boolean(a) ```