js 数据类型转换问题

类型转换问题概括

在JavaScript中有7种不同的数据类型:number、string、boolean、object、function、null、undefined

3中对象类型:Object、Date、Array

强制转换

    1. 转为number类型

        Number    //不会省略小数,保持原样

        parseInt    //省略小数,可用于取整

        parseFloat    //转为浮点数

        parseInt 和 parseFloat 都是只转数字,碰到非数字样式即停止,后面的不在继续转换,如:

parseInt("123.23string");
// 123
parseFloat("123.23string");
// 123.23

        特别注意空字符串的转换及NaN

            Number("");    // 0

            Number(" ");    // 0

            Number("10 11");    // NaN 注意有空格

    2. 转为string类型

        String(3.14159);    // "3.14159"

        String(true);   // "true"

        String(false);   // "false"

        String(Date());

        以上三种转换都可以用 .toString() 代替,如:

        (3.14159).toString();

        true.toString();

        Date().toString();

隐性转换

    js存在隐性转换,当你写错一些类型时它会自动转换,所以说这玩意你想写错还真的挺难!

    1 + null;    // 1

    1 + "1";    // 11

    "1" + null    // 1null

    "1" - 1    // 0

    "1" * 2    // 2

    "2" / 1    // 2

+ 是一元运算符,当其他类型用 + 与字符串连接时,会自动被转为字符串,但是 减(-) 乘(*) 除(/)会把字符当做数字做运算。

    var a = "1";

    var b = +a;    // b = 1 b此时是number类型

    var c = "qbs";

    var d = +c;    // NaN 但d是number类型

typeof

    用于检测数据类型。

    当检测function、object、null、date、array时都是返回Object,这时可以用constructor,使用这个会返回创建该对象的函数,可使用  ***.constructor.toString().indexOf("类型名 如:Array") > -1;

上面的代码意思就是返回对象的构造函数,转换为字符串再判断 类型名 在该字符串第一次出现的位置,只要出现就代表它是该类型。

本人也是新手,随手写写,难免存在遗落的知识点,望大家多多指点。

    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值