js数据类型转换day3

本文详细介绍了JavaScript中数据类型转换的三种方式:字符串转为数值、布尔转为数值和各种类型转为字符串。区分了强制类型转换和隐式转换的区别,并通过实例展示了parseInt和parseFloat的用法以及不同类型隐式转换的过程。
摘要由CSDN通过智能技术生成

数据类型转换

首先,我们得知道什么是数据类型转换?
在我们前端界面,使用表单、prompt 获取过来的数据默认是字符串类型的,那么我们就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
通常需要会实现3种方式的转换:
转换为字符串(String)类型
转换为数值(Number)型
转换为布尔(Boolean)型

强制类型转换与隐式转换的区别

显然,强制类型转换是我们让其指定转换为对应的类型,而隐式转换是由JavaScript自动完成。
强制类型转换可能会导致数据精度的丢失,由大范围的数据类型被转换为小范围的数据类型时,小范围的数据类型无法存储大范围的数据。而隐式类型转换则不会导致数据精度的丢失。

其他类型转化为Number型

1.Number(参数)
2.parseInt(参数)—整数
3.parseFloat(参数)—浮点数(小数)

    //1.Number(参数)
    //1).字符串转数字 ''--0  ' '--0  '123hello' '123'  NaN  
    let str='';
    str=' ';
    str=Number(str);
    console.log(str,typeof str);//0 'number',所以空串/空格串为0
    
    let str1='123';
    st1=Number(str1);
    console.log(str1,typeof str1);//123 'number'
    
    let str2='123hello'
    str2=Number(str2);
    console.log(str2,typeof str2);//NaN  数字加字母NAN
    //2).布尔转数字
    let flag=true;
    flag=Number(flag);
    console.log(flag,typeof flag);//1 'number'
    let flag1=false;
    flag1=Number(flag1);
    console.log(flag1,typeof flag1);//0 'number'
   //3).null 
    let a=null;
    a=Number(a);
    console.log(a,typeof a);//0 'number'
   //undefined
    let b;
    b=Number(b);
    console.log(b,typeof b);//NaN 'number'
   //2.parseInt(参数) 整数
   let str='123'
   console.log(parseInt(str));//结果123 如果是'123hello',提出的是123,如果提出的数值为小数,结果是提出整数部分;针对'123' '123hello' 形式结果为123,其他一律是NaN
   let str1='123.56h'
   console.log(parseFloat('str1'),parseInt);//结果123.56

   console.log(parseFloat(''),parseFloat(' '),parseFloat('hello123'),parseFloat(null),parseFloat(underfined),parseFloat(true));//结果为NaN NaN NaN NaN NaN NaN

隐式转换参数

   let num=prompt('请输入一个数字:');
   console.log(num,typeof num);//20 string到这输入的数字为字符串类型
   num=+num;//隐式转换100 'number'
   //+'123'为123  
   console.log(num,typeof num);//20 'number'
   console.log('123'*1,'123'/1, '123'%1,'123'-0)//减乘除行,加不行,加放在前面,注意引号与数值做运算不再为字符串类型,自动转换

其他类型转换为字符串型

强制类型转换

String(参数) —所有的都能转
参数.toString() —null和undefined没有此方法

   //String(参数)
   let num=123;
   num=String(123);
   console.log(num,typeof num);//123 'string'

   let a=null;
   a=String(a);
   console.log(a,typeof a);//null 'string'

   let a=undefined;
   a=String(a);
   console.log(a,typeof a);//undefined 'string'
   
   let a=true;
   a=String(a);
   console.log(a,typeof a);//true 'string'
   //toString方法
   let num1=789;
   num1=num1.toString();
   console.log(num1,typeof num1);//789 'string'
   //null和undefined用此方法,控制台输出报错

隐式转换

采用拼接

   //拼接空串  123+''---输出结果'123'
   let b=123;
   b=b+'';
   console.log(b,typeof b);
   //parseFloat'123''123hello'   其他都是NaN

其他类型转Boolean类型

只有6种为假,其余全为真

6种为假情况:‘’ null undefined 0 NaN false

    let a;
    console.log(Boolean(''),Boolean(null),Boolean(undefined),Boolean(NaN),Boolean(0),Boolean(false));
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拨云见日_c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值