JavaScript

JavaScript — 数据类型转换

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对 空(Null)、未定义(Undefined)、Symbol。

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

1、typeof 判断数据类型

      typeof 数据 //返回数据的类型

例如:

 type "aaa"   //返回string,得到string
    var a;
        console.log(typeof a);  //因为没有赋值,所以它是undefined

    var b=null
     console.log(typeof b); //b的类型是object

2、强制转换

String(数据) 强制转换为字符串

  • 主动将数据的类型强制转换为某种类型。
  • 数据.toString(进制) 强制转换为字符串。
  • null和undefined是不能转换的。
  • toString可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36也就是最小是2进制,最大是36进制,因为数字字母就36个。
  • toFixed(小数点后几位) 将数值转换为字符串,并且按照小数点四舍五入保留位数 。
  • 任何数据都需要转换为二进制,但是原生js二进制小数转换以后恢复到数值时,是有误差的
      var num=null;
        var a=String(num); //转换成字符串类型
        console.log(a);//打印a
        console.log(typeof num);//检测num的数据类型为object
        console.log(typeof a);//检测a的数据类型为string


      var num=10;//num是一个数值型
        var a=num.toString(2);//转换成字符串二进制
        console.log(a);//打印a的结果
        console.log(typeof num);//检测num的数据类型为number
        console.log(typeof a);//检测a的数据类型为string

Number(数据) 强制转换为数值

  • NaN 非数值 类型是number
  • 纯字符—> NaN
  • 纯数字—> 数字
  • 部分数字,部分字符—> NaN
  • 布尔值—> 数字 true—> 1 false—> 0
  • undefined—>NaN
  • null—>0
var str="你好";//纯字符 NaN
var str="12";//数字12
var str="1a";//NaN
var num=Number(str);//转换成数值型
console.log(num);

// 布尔值
var b=false;
var num=Number(b);
console.log(num);//0

var a;//undefined--->NaN 
var a=null;//null--->0
var num=Number(a);   
console.log(num);

parseInt(字符,进制) 强转为整数

  • 可以将指定进制方式字符串转换为10进制数值,是toString()逆转换
  • 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
  • 布尔值强转数值整型,会变成NaN
  • undefined—>NaN
  • null—>NaN
  • 纯字符—> NaN
  • 纯数字—>数字
  • parseFloat(); 强转小数和parseInt类似,只不过可以保留小数位
      //var str="你好";//结果为NaN
      //var str = "20";//结果为数字20
      //var str = "1010";//转换为2进制为数字10
      //var str = false;//结果为NaN
      //var str = true;//结果为NaN
      //var str;//结果为NaN
      //var str = null;//结果为NaN
      //var str = 20.545;//结果为20
      var num = parseInt(str);
      console.log(num);

Boolean(数据) 转换为布尔值

  • “”,0,false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true
      //var str = "";//结果为false
      //var str = null;//结果为false
      //var str;//结果为false
      //var str = 0;//结果为false
      //var str = false;//结果为false
      //var str = NaN;//结果为false
      var num = Boolean(str);
      console.log(num);

注意:
隐式转换
当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换。
隐式转换遵从与 String() 、Number() 、Boolean()。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值