JavaScript数据类型转换

数据类型的转换

  • 数据类型之间的转换,数值转成字符串,字符串转成布尔,布尔转成数字型

其他数据类型转成数值

number(变量)

可以把一个变量强制转换成数值类型

可以转换小数,会保留小数

可以转换布尔值

遇到不可转换的都会返回 NaN

 //number
        //转换的内容看成一个整体处理
        //如果可以转成一个合法的数值, 则转成数字
        //如果不能转成一个合法的数字,则转成NaN
        //true->1  false->0
        var num1 = 'abc123';
        console.log(num1);

        var num2 = Number(num1)
        console.log(typeof (num2))
        console.log(num2);//无法装成合法数值,就出现nan
        console.log(Number(true));

        var test;
        console.log(Number(test));//nan
        console.log(Number(null));//0
  1. parseInt(整型)

从第一位开始检查,是数字就转换,知道一个不是数字的内容

开头就不是数字,那么直接返回 NaN

不认识小数点,只能保留整数

 //整形parseInt()
        //不管转成什么,都是一位一位对待
        //如果第一位不能转成合法数值,那么立马输出nan 然后停止转换
        //如果第一位能转成合法数字  那么保留第一位 然后继续看第二位
        //以此类推直到结束
        //true->NaN  flase->NaN
        //不认小数点

        var num3 = '123abc';
        console.log(parseInt(num3));
        console.log(parseInt(num3,16));//告诉转换器是一个16进制的数字,所以最总结果是转成10进制
        console.log(parseInt('1010101'));//1010101
        console.log(parseInt('1010101',2));//2转10进制  85
        console.log(parseInt('123.45'));//小数点识别不了,不知道转成那个数字,所以停止 ,输出123
        console.log(parseInt(true));//nan
        console.log(parseInt(NULL));//NAN
        var test;
        console.log(parseInt(test));//nan
  1. parseFloat(浮点型)

从第一位开始检查,是数字就转换,知道一个不是数字的内容

开头就不是数字,那么直接返回 NaN

认识一次小数点

//parseFloat()浮点型
        // 也是以为一位的对待  同parseInt 
        // 如果第一位不能转成合法的值 那么就立马输出 NaN 然后停止转换 
        // 如果第一位可以转换 那么保留第一位 继续下一位  
        // 识别小数点

        var test = '123.45';
        console.log(parseFloat(test));// 123.45
        console.log(parseFloat('123.45abc'));// 123.45
        console.log(parseFloat('abc123.45'));// 123.45
        var test;
        console.log(parseFloat(test));// NaN
        console.log(parseFloat(null));

  1. +

    运算符两边都是可运算数字才

    如果运算符任何一边不是一个可运算数字,那么就会返回 NaN(字符串)

    加法不可以用

    //+  除了相加 还有拼接的作用
            console.log(typeof (1 + 1 + 'abc'));
            //只要两边有以一个字符串,那麽就是拼接
            //从左往右运算2+'abc' 2abc
            console.log(typeof ('abc' + 1 + 1));//abc11 开始就见到字符串 后边全是拼接
    

    其他数据转成字符串

    1. 变量.toString()

      有一些数据类型不能使用 toString() 方法,比如 undefinednull

       //toString()
              //变量.tostring()
              //数据.tostring()
              //不能转null 和 undefined
              console.log(typeof test.toString());
              console.log(typeof 100e5.toString());
              console.log(typeof 123.45.toString());
              //console.log(typeof null.toString());//不可以转会报错
              var test1 = true;
              console.log(typeof test1.toString());
              var test3;
              //console.log(typeof test3.toString());//不可以转会报错
      
    2. String(变量)

      所有数据类型都可以

       var test = 100;
              console.log(typeof test);
              //string()
              //任何类型都可以使用这个转成字符串
              //原样显示
              var y1;
              console.log(String(y1));
      
    3. 使用加法运算

      在 JS 里面,+ 由两个含义

      字符串拼接: 只要 + 任意一边是字符串,就会进行字符串拼接

      加法运算:只有 + 两边都是数字的时候,才会进行数学运算

        //+  除了相加 还有拼接的作用
              console.log(typeof (1 + 1 + 'abc'));
              //只要两边有以一个字符串,那麽就是拼接
              //从左往右运算2+'abc' 2abc
              console.log(typeof ('abc' + 1 + 1));//abc11 开始就见到字符串 后边全是拼接
      

      其他数据转成布尔

      1. Boolean(变量)

        在 js 中,只有 ''0nullundefinedNaN,这些是 false

        其余都是 true

         // 数值 整数 浮点数 科学计数  非数字NaN 0 0.0
                    // 字符串 "adsf"  'adf'  `adf`   ''  ""
                    // 布尔 true false
                    // null undefined
                    // 复杂数据类型  
                    // function
        
                    console.log(Boolean(0))
                    console.log(Boolean(0.0))
        
                    console.log(Boolean('abc'/123))
        
        
                    console.log(Boolean(''))
                    console.log(Boolean(""))
        
                    console.log(Boolean(true))
                    console.log(Boolean(false))
        
                    console.log(Boolean(null))
                    var test;
                    console.log(Boolean(test)
                    console.log(Boolean(-9999999999e88888888888))
        
                    // 0 0.0 NaN ""  ''  false  null undefined
                    //  复杂数据类型 引用类型中 如果是空的  结果一定是false 
        
                    // 重点  后边判断  逻辑运算 都会用到  
        
                    // 转字符串  转数值 转 布尔 上面的都是 明着转换   
                    // 后边知识点 很多隐式转换   
        
                    // 负无穷 是true 
        
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值