1.4 数据类型的强制转换

所有从页面获取的数据都是字符串,无法进行数值计算,需要转换为具体的数据类型运算操作,数据类型转换分为’数据类型强制转换’、‘数据类型隐式转换’

数据类型的强制转换就是通过 js 提供的函数进行数据转换。

1、其他类型转 Number 类型

(1)Number ( 参数 )

参数
······参数像是一个占位符。当方法被调用时,传递值给参数,这个值被称为实参或变量。
······参数列表是指方法的参数类型、顺序、和参数的个数。
······参数是可选的,方法可以不包括任何参数。
·
形式参数 在方法被调用的时候用于接收外界输入的数据
实参 调用时实际传给方法的数据。

<1>作用:将任何类型转换为数字,返回一个新数值,不会改变原参数

调用Number转换数字时,Number()的首字母要大写

        var str1 = '11';
        var n = Number(str1);  //调用Number转换数字时,Number()的首字母要大写

        console.log(n);       //返回一个新数值,类型为Number类型
        console.log(typeof n);

        console.log(str1);     //原参数类型不变,仍为String类型
        console.log(typeof str1);

在这里插入图片描述

<2>转换规则:

① 如果字符串全是数字,则正常转为数字,返回数字;
② 如果有不是数字的,则转不成功,为NaN,返回NaN;
③ true转为1, false转为0;
④ null转为0;
⑤ undefined转为NaN。

        //2、字符串中有不是数字的不能转,为NaN,但属于数字类型
        var str3 = '大王8';
        var n2 = Number(str3);
        console.log(n2);
        console.log(typeof n2);
        
        //3、true转为1,false转为0
        var n3 = Number(true);
        console.log(n3);
        var n4 = Number(false);
        console.log(n4);

        //4、null转为0
        var n5 = Number(null);
        console.log(n5);

        //5、undefined转为 NaN
        var n6 = Number(undefined);
        console.log(n6);

在这里插入图片描述

注意 Number 方法将字符串转换成 number 类型时,只能转换纯数字字符串和空字符串,其他的都是 NaN。 但是有些时候,需要对字符串做操作。
在这里插入图片描述
在这里插入图片描述

(2) parseInt 和 parseFloat
<1>语法

······有些情况下,我们需要对字符串进行一些运算操作,例如‘12px’需要在当前像素的基础上自加,针对于 12px 这种情况,可以通过parseInt 与 parseFloat 转换,都是转换为number 类型,parseInt 是转换成整型。parseFloat 转换成浮点型,即可以保留小数。

parseInt(参数):将参数转为Number,取整,舍弃小数部分;

parseFloat(参数):将参数转为Number,保留小数。

        var str1 = '3.14159265785'
        var p1 = parseInt(str1);   //转换成数字、整数
        console.log(p1);
        console.log(typeof p1);
        var p2 = parseFloat(str1);  //转换成数字、小数
        console.log(p2);
        console.log(typeof p2);

在这里插入图片描述

<2>转换规则
  • 从前往后一位一位地看,如果是数字,则提出来,如果不是数字,则到此为止,只转换前面能识别的,后面的都不要了。

······parseInt 和 parseFloat 在转换时是对数据进行解析转换,前者是整数,后者是浮点数。他们解析的原则是从前往后进行解析,尽其所能。若存在有能识别的数字就解析,遇到不能识别的就结束转换,如果第一位就不是数字则返回 NaN

        //取整时遇到不是数字的
        var str2 = '12a56.8';
        var p3 = parseInt(str2);
        console.log(p3);
        console.log(typeof p3);

        var str3 = 'm4586';
        var p4 = parseInt(str3);
        console.log(p4);

        //保留小数时遇到不是数字的
        var str4 = '12.58md56';
        var p5 = parseFloat(str4);
        console.log(p5);
        
        var str5 = '1a5.586';
        var p6 = parseFloat(str5);
        console.log(p6);

        var str6 = 'j5.96';
        var p7 = parseFloat(str6);
        console.log(p7);

在这里插入图片描述

<3>区别
  • parseFloat能识别小数点,仅限于从前往后的第一个小数点,而parseInt不识别;
  • parseInt拥有第二个参数,可以设置代码以多少进制进行转换,而parseFloat没有第二个参数。

······语法parseInt(string,radix)
······parseInt 以进制进行转换时,建议任何时候加上第二个参数 10,即以 10 进制转换

        console.log(parseFloat('12.3.4万')); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值