JavaScript强制类型转换(二)Number数值型 | 您所在的位置:网站首页 › js强制转换字符串 › JavaScript强制类型转换(二)Number数值型 |
JavaScript强制类型转换(二)
方式一:调用 Number()函数String字符串Boolean值null和undefined
方式二:调用parseInt()函数使用要点局限性
方式三:调用parseFloat()函数使用要点两个函数转换其他类型数据
方式四:使用算术运算符使用要点
将其他数据类型转换为Number数值型
方式一:调用 Number()函数
通过传参重赋值的方式,将各种类型的值转换为number数值型。 各类型转换结果: String字符串使用要点: 如果是纯数字的字符串,则直接将其转换为数字;如果字符串有非数字的内容,则转换为NaN;如果字符串是一个空串或者是一个全是空格的字符串,则转换为0; Boolean值true转换为1,false转换为0; null和undefinednull值转换为0,undefined转换为NaN; 演示代码 // 调用Number()0函数将a转换为Number类型 // 字符串 var a = "123"; a = Number(a); console.log("字符串a转换后类型 = " + typeof a); console.log("字符串a转换后的值 = " + a); // 布尔值 true a = true; a = Number(a); console.log("布尔值a转换后类型 = " + typeof a); console.log("布尔值a转换后的值 = " + a); // 布尔值 false a = false; a = Number(a); console.log("布尔值a转换后类型 = " + typeof a); console.log("布尔值a转换后的值 = " + a); // 特殊类型 null a = null; a = Number(a); console.log("null a转换后类型 = " + typeof a); console.log("null a转换后的值 = " + a); // 特殊类型 undefined a = undefined; a = Number(a); console.log("undefined a转换后类型 = " + typeof a); console.log("undefined a转换后的值 = " + a); 预览结果 方式二:调用parseInt()函数在使用Number()函数转换非纯数字字符串时,有时会出现无法转换的结果,此时返回值会变成NaN,即非数值型,例如: a = "193px"; a = Number(a); console.log("字符串a转换后类型 = " + typeof a); console.log("字符串a转换后的值 = " + a);结果为: 虽然类型确实转换为number数值型,但是并没有将数据保留下来。此时,我们就可以使用parseInt()函数或者parseFloat()函数来进行类型转换。 使用要点 专门用来适配字符串的转换;parseInt()可以将一个字符串中的有效的整数内容取出来,然后转换为Number;例如: // 调用parseInt()函数转换特殊字符串 a = "193px"; a = parseInt(a); console.log("字符串a转换后类型 = " + typeof a); console.log("字符串a转换后的值 = " + a);结果: 局限性但是,parseInt()函数遇到带有小数点的特殊字符串时,还是存在一定的限制 a = "193.123px"; a = parseInt(a); console.log("字符串a转换后类型 = " + typeof a); console.log("字符串a转换后的值 = " + a);在这段代码里,我们想要获得的是在px之前,包括小数点之后的全部有效数字;但是,由于parseInt()函数的局限性,我们只能提取到整数的部分。 那么这个时候就需要使用到它的兄弟函数,parseFloat()了。 方式三:调用parseFloat()函数 使用要点 把一个字符串串转换为一个浮点数;作用和parseInt()类似,不同的是它可以获取有效的小数;例如: // 调用parseFloat()函数转换特殊字符串 a = "193.123px"; a = parseFloat(a); console.log("字符串a转换后类型 = " + typeof a); console.log("字符串a转换后的值 = " + a);结果: 值得注意的是,这里说的能够进行提取的携带数字的字符串,它所携带的一定要为有效的字符串,一些不符合数值型应有格式的数字还是只会提取出有效的部分。 如下演示,一个携带有两个小数点的数字字符串 a = "193.123.456px"; a = parseFloat(a); console.log("字符串a转换后类型 = " + typeof a); console.log("字符串a转换后的值 = " + a);结果: 两个函数转换其他类型数据如果对非String使用parseInt()或parseFloat() 它会先将其转换为String,然后再操作; 例如: var a = true; a = parseInt(a); console.log("a转换后类型 = " + typeof a); console.log("a转换后的值 = " + a); a = false; a = parseInt(a); console.log("a转换后类型 = " + typeof a); console.log("a转换后的值 = " + a); a = null; a = parseInt(a); console.log("a转换后类型 = " + typeof a); console.log("a转换后的值 = " + a); a = undefined; a = parseInt(a); console.log("a转换后类型 = " + typeof a); console.log("a转换后的值 = " + a);结果: 因为转换后的字符串不存在有效数字部分,所以结果都为NaN(非数值型); 方式四:使用算术运算符 使用要点 当对非number类型的值进行运算时,会先将值转换为number再进行运算;任何值和NaN进行运算,结果都是NaN;在同字符串进行算术运算时,除了+加法会出现拼接字符串的情况,其它运算符,包括 - * / 在内都是先将字符串转换为number数值再进行运算;任何值做 - * / 运算时都会自动转换为number,我们可以利用这一特点做隐式的类型转换,可以通过为一个值 -0 *1 /1 来将其转换为number,原理和Number()函数一样,但是使用时更加简单;虽然使用方法简单,但不推荐使用,所以这里就不做演示了。只要记住,使用时进行的算数运算不能会是影响到原始值的运算即可。 这里附上上一篇的链接: JavaScript强制类型转换(一): 将其他数据类型转换为String字符串型 这里是万物之恋,我们下次再见了! |
CopyRight 2018-2019 实验室设备网 版权所有 |