JavaScript将数字字符串(String)转换成数值类型的数字
(Number)
JavaScript 中将字符串转换成数字有 Number()、parseInt()、parseFloat()、* ( / )  这⼏个⽅法,都可以将数字格式的字符串转换成数字。
1、Number()    --    强制数字转化的⽅法
使⽤强制类型转换可以访问特定的值,即让它是另⼀种类型的数据。
ECMAScript 中可⽤的 3 种强制类型转换: Boolean( value );String( value );Number( value )。
<script>
var str1 = 'hxh';  // 字母字符串
var str2 = '112233';  // 整数字符串
var str3 = '1122.33';  // 浮点数字符串
var str4 = 'hxh666';    // 字母 + 整数字符串
数组转换成字符串
var str5 = 'hxh66.6';    // 字母 + 浮点数字符串
var str6 = '666hxh';    // 整数 + 字母字符串
var str7 = '6.66hxh';    // 浮点数 + 字母字符串
var str8 = 'hxh~~##**23333';    // 字母 + 符号 + 整数字符串
var str9 = 'hxh~~##**233.33';    // 字母 + 符号 + 浮点数字符串
var str10 = '23333hxh~~##**';    // 整数 + 字母 + 符号字符串
var str11 = '23.333hxh~~##**';    // 浮点数 + 字母 + 符号字符串
var boolOne = false;  // 布尔型 false
var boolTwo = true;    // 布尔型 true
var arr1 = [];  // var arr = new Array(); 创建⼀个数组
var obj1 = {};  // var obj = new Object(); 创建⼀个对象
var arr2 = [11,22,99];
var arr3 = [11.45,22.72,99.36];
var obj2 = {age:20,sex:'男'};
var obj3 = {height:174.5,sex:'男'};
console.log( Number(str1) );        // NaN
console.log( Number(str2) );        // 112233
console.log( Number(str3) );        // 1122.33
console.log( Number(str4) );        // NaN
console.log( Number(str5) );        // NaN
console.log( Number(str6) );        // NaN
console.log( Number(str7) );        // NaN
console.log( Number(str8) );        // NaN
console.log( Number(str9) );        // NaN
console.log( Number(str10) );        // NaN
console.log( Number(str11) );        // NaN
console.log( Number(boolOne) );      // 0
console.log( Number(boolTwo) );      // 1
console.log( Number(null) );        // 0
console.log( Number(undefined) );    // NaN
console.log( Number(arr1) );        // 0
console.log( Number(obj1) );        // NaN
console.log( Number(arr2) );        // NaN
console.log( Number(arr3) );        // NaN
console.log( Number(obj2) );        // NaN
console.log( Number(obj3) );        // NaN
</script>
Number()是强制转换,可以⽤于任何数据类型,能将纯数字字符串转换成数字,同时也能⽤于布尔型( boolean )和空值( null ),以及空数组( [ ] ),
但是如果⽤于错误格式的数字(不能转换为⼀个数字,如字母字符串、混合字符串、⾮空数组、对象)则返回 NaN(⾮数字值)。
2、parseInt() 和 parseFloat()    --    JavaScript⾃带的数字转化⽅法
<script>
console.log( parseInt('hxh') );                          // NaN
console.log( parseInt('112233') );                      // 112233
console.log( parseInt('1122.33') );                      // 1122
console.log( parseInt('hxh666') );                      // NaN
console.log( parseInt('hxh66.6') );                      // NaN
console.log( parseInt('666hxh') );                      // 666
console.log( parseInt('6.66hxh') );                      // 6
console.log( parseInt('hxh~~##**23333') );              // NaN
console.log( parseInt('hxh~~##**233.33') );              // NaN
console.log( parseInt('23333hxh~~##**') );              // 23333
console.log( parseInt('23.333hxh~~##**') );              // 23
console.log( parseInt(false) );                          // NaN
console.log( parseInt(true) );                          // NaN
console.log( parseInt(null) );                          // NaN
console.log( parseInt(undefined) );                      // NaN
console.log( parseInt([]) );                            // NaN
console.log( parseInt({}) );                            // NaN
console.log( parseInt([11,22,99]) );                    // 11
console.log( parseInt([11.45,22.72,99.36]) );            // 11
console.log( parseInt(['11.45','22.72','99.36']) );      // 11
console.log( parseInt(['aa11.1','bb22.2','cc33.3']) );  // NaN
console.log( parseInt(['11.1aa','22.2bb','33.3cc']) );  // 11
console.log( parseInt({age:20,sex:'男'}) );              // NaN
console.log( parseInt({height:174.5,sex:'男'}) );        // NaN
</script>
可以看出,parseInt() ⽤于字符串和⾮空数组,会取出其中整数部分 ( 数组的话是取第 1 个元素来处理 ) ,返回⼀个新的整数。如果第⼀个字符就是⾮数字,则返回NaN。如果是有带有⼩数的,⼩数部分会被去除。
<script>
console.log( parseFloat('hxh') );                          // NaN
console.log( parseFloat('112233') );                      // 112233
console.log( parseFloat('1122.33') );                      // 1122.33
console.log( parseFloat('hxh666') );                      // NaN
console.log( parseFloat('hxh66.6') );                      // NaN
console.log( parseFloat('666hxh') );                      // 666
console.log( parseFloat('6.66hxh') );                      // 6.66
console.log( parseFloat('hxh~~##**23333') );              // NaN
console.log( parseFloat('hxh~~##**233.33') );              // NaN
console.log( parseFloat('23333hxh~~##**') );              // 23333
console.log( parseFloat('23.333hxh~~##**') );              // 23.333
console.log( parseFloat(false) );                          // NaN
console.log( parseFloat(true) );                          // NaN
console.log( parseFloat(null) );                          // NaN
console.log( parseFloat(undefined) );                      // NaN
console.log( parseFloat([]) );                            // NaN
console.log( parseFloat({}) );                            // NaN
console.log( parseFloat([11,22,99]) );                    // 11
console.log( parseFloat([11.45,22.72,99.36]) );            // 11.45
console.log( parseFloat(['11.45','22.72','99.36']) );      // 11.45
console.log( parseFloat(['aa11.1','bb22.2','cc33.3']) );  // NaN
console.log( parseFloat(['11.1aa','22.2bb','33.3cc']) );  // 11.1
console.log( parseFloat({age:20,sex:'男'}) );              // NaN
console.log( parseFloat({height:174.5,sex:'男'}) );        // NaN
</script>
可以看出,parseFloat() 和 parseInt() ⽤法相同,parseInt() 和 parseFloat() 会对第⼀个⽆效字符前的数值进⾏类型转换,如果是有带有⼩数的,⼩数部分会被保留。
3、 * 或者 /    --    弱转化的⽅法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。