js数据类型转换

逆战班,前段学习

判断数据类型

6种基本数据类型
null 空值,表示非对象
undefined 未定义的值,表示未赋值的初始值
number 数字,数字运算符
string 字符串,表示信息流
boolean 布尔值,逻辑运算的值
object 对象,表示复合结构的数据集
可以使用typeof运算符分别检测常用值的类型,
var type=“aaa”
console.log(typeof type) 返回string

var type=1
console.log(typeof type) 返回 number

var type=true
console.log(typeof type) 返回boolean

var type=null
console.log(typeof type) 返回object

var type=undefined
console.log(typeof type) 返回 undefined

var type=function(){}
console.log(typeof type) 返回 function

强制转换

1、String(数据);强制转换为字符串
var num=10
var a=String(num);

var num=10
        console.log(typeof String( num))
        

在这里插入图片描述
2、数据.toString();强制转换为字符串
var num=10
console.log(typeof num.toString())

  var num=10
        console.log(typeof num.toString());

在这里插入图片描述
.String(数据)和数据.toString()的区别
1.在数据.toString()中 null 和 undefined不能转换而在.String(数据)中可以。

        var num=null
        console.log(typeof num.toString())
        var num=undefined
        console.log(typeof num.toString())

在这里插入图片描述
2.tostring可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36也就是最小是2进制,最大是36进制,因为数字字母就36个
下图将10和255分别转换为2进制和16进制

var num=10
        console.log(num.toString(2));
   num=255
        console.log(num.toString(16));

在这里插入图片描述
3、toFixed(小数点后几位) 将数值转换为字符串,并且按照小数点四舍五入,但是有精度误差
任何数据都需要转换为二进制,但是原生js二进制小数转换以后恢复到数值时,是有误差的

  var num=10.257
        console.log(num.toFixed(2));

在这里插入图片描述
4、Number(数据) 强转数值
var str=“你好” 纯字符 //转换为NaN 非数值 类型是number
var str=“10” 纯数字字符 //转换为数字
var str=“1a” 部分字母部分数字 //转换为NaN 非数值 类型是number
var str=true // 1
var str=false //0
var str=undefind // 转换为NaN 非数值 类型是number
var str=null //0

		var str="你好"
        console.log(Number(str));
        var str="10"
        console.log(Number(str));
        var str="1a"
        console.log(Number(str));
        var str=true
        console.log(Number(str));
        var str=false
        console.log(Number(str));
        var str=undefined
        console.log(Number(str));
        var str=null
        console.log(Number(str));

在这里插入图片描述
5、parseInt(数据) 强转为整数
var str=“你好” 纯字符 转换为NaN 非数值 类型是number
var str=“10.1” 纯数字字符 10 转换为整型
var str=“10.1a” 部分数值部分字符 10 转换为整型
var str=“a10.1” 部分数值部分字符 转换为NaN 非数值 类型是number
通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
parseInt(数据,值)可以把任意进制数转换为10进制
var str=1010
parseInt(str,2)
输出得10

var str=1010
console.log(parseInt(str,2));

在这里插入图片描述
var str=true 转换为NaN 非数值 类型是number
var str=false转换为NaN 非数值 类型是number
var str=undefind转换为NaN 非数值 类型是number
var str=null转换为NaN 非数值 类型是number
6、parseFloat(); 强转为小数
它能识别出第一个出现的小数点,而第2个小数点为非法。

  var str="10.23.1"
        console.log(parseFloat(str));

在这里插入图片描述
7、Boolean(数据); 转换为布尔值
“” 0 false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true

   var str=false;
      console.log(Boolean(str))
      var str="";
      console.log(Boolean(str))
      var str=0;
      console.log(Boolean(str))
      var str=undefined;
      console.log(Boolean(str))
      var str=null;
      console.log(Boolean(str))
      var str=NaN;
      console.log(Boolean(str))

在这里插入图片描述

隐式转换

var a=“1”;var b=3;
console.log(b+a);
console.log(b-a);
如果正常来说两个不同类型的数据相加就会报错
这种情况只可能发生再弱类型语句中,类型不相同,弱类型语言会自动将数据转换为对应的类型
当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换
var a=“a”;var b=3;
console.log(a+b);
输出得a3
这里将b隐式转换成字符串,并且首尾相连
console.log(a-b);
输出得NaN
减法会隐式转换将a和b都转换为数值 NaN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值