一、自动类型转换
自动类型转换一般是根运行环境和操作符联系在一起的,是一种隐式转换,看似难以捉摸,其实是有一定规律性的,大体可以划分为:转换为字符串类型、转换为布尔类型、转换为数字类型。 图1:自动类型转换顺序二、函数转换(String to Number)
JS 提供了 parseInt()和 parseFloat()两个全局转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对 String 类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是 NaN(Not a Number)。1、parseInt()
在转换之前,首先会分析该字符串,判断位置为0处的字符,判断它是否是个有效数字,如果不是,则直接返回NaN,不再继续,如果是则继续,直到找到非字符。parseInt("1234blue"); // returns 1234 parseInt("22.5"); // returns 22 parseInt("blue"); // returns NaN
2、parseFloat()
该方法与 parseInt() 方法的处理方式相似,从位置 0 开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字。不过,对于这个方法来说,第一个出现的小数点是有效字符。如果有两个小数点,第二个小数点将被看作无效的,parseFloat()方法会把这个小数点之前的字符串转换成数字。parseFloat("1234blue"); // returns 1234.0 parseFloat("22.5"); // returns 22.5 parseFloat("22.34.5"); // returns 22.34 parseFloat("blue"); //returns NaN
三、显示转换
几乎每个数对象都提供了toString()函数将内容转换为字符串形式,其中Number提供的toString()函数可以将数字转换为字符串。 Number还提供了toFixed()函数将根据小数点后指定位数将数字转为字符串,四舍五入。// 将内容转换为字符串形式 var data = 10 console.log(data.toString()) // 根据小数点后指定位数将数字转为字符串,四舍五入 data = 1.4; console.log(data.toFixed(0)); data = 1.49; console.log(data.toFixed(1)); // 不能对null和undefined使用 data = null console.log(data.toString()) data = undefined console.log(data.toString())
JS 为 Number、Boolean、String 对象提供了构造方法,用于强制转换其他类型的数据。此时操作的是整个数据,而不是部分。
Number(false) 0 Number(true) 1 Number(undefined) NaN Number(null) 0 Number( "5.5 ") 5.5 Number( "56 ") 56 Number( "5.6.7 ") NaN Number(new Object()) NaN Number(100) 100 Boolean(""); // false – empty string Boolean("hi"); // true – non-empty string Boolean(100); // true – non-zero number Boolean(null); // false - null Boolean(0); // false - zero Boolean(new Object()); // true – object
最后一种强制类型转换方法 String() 是最简单的,因为它可把任何值转换成字符串。要执行这种强制类型转换,只需要调用作为参数传递进来的值的 toString() 方法,即把 1 转换成"1 ",把 true转换成 "true ",把 false 转换成 "false ",依此类推。强制转换成字符串和调用 toString() 方法的唯一不同之处在于,对 null 或 undefined 值强制类型转换可以生成字符串而不引发错误:
var s1 = String(null); // "null" var oNull = null; var s2 = oNull.toString(); // won’t work, causes anerror
最为简单的一种转换为字符串的方式,直接在任意数据后面 + "" 即可。如您想学习完整java架构师全新课程,请私信我或请看图1信息。