js数据类型 显式转换

声明:本文只是纯总结,范例几近没有,需要验证的童鞋请私下验证,有问题请留言。

js的数据类型

1 基础类型:number、string、null、boolean、undefined、Symbol(es6新增)
2 引用类型:object
ps:本篇主要讲一些基础类型的显式转换

一些显式转换的方法

  • Number() 转为数字
    *Number(undefined) => NaN (ps: NaN什么都不等)
    *Number(null) => 0
    *Number(string) => 当字符串含除了数字以外的字符时为NaN,纯数字字符串时返回数字
    *Number(object) => 当对象为数组对象时,1、空数组时返回0,2、数组只有一项且这一项为一个数字或者纯数组字符串时返回第一项的数字,其他均为NaN
  • Boolean()转化为boolean
    *返回true或者false,现返回false的只有
    NaN,‘’,undefined, null,0,false
    这六种,其余均为true
  • String() 转为字符串
    *基础类型的数据均转为字符串undefined => ‘undefined’, null => ‘null’, true => ‘true’, 对象时{} => ‘[object Object]’, 数组对象时相当于用join(’,’)将数组转换为字符串
  • toString(radix) 转为字符串
    *1,其不能转换null和undefined
    *2,toString()是调用形式的其小括号内可以传参数,只有当转换的数据为数字时,其参数为2 - 36的数字的时候toString()会把这个数字转换为以这个参数为基底的数字字符串 let a = 11, a.toString(8) => ‘13’
    *3,其他和String() 一样
  • parseInt(str,radix ) 转为整形
    *1,parseInt转换是一位位转换的,所以如果是以数字开头的字符串,转化出来时就会取前面的字符串,parseInt
    parseInt('123123abc') //123123
    *2, 当第一位参数为一个正常的十进制数字或者字符串的时候,第二个参数是2 - 36的数字时,将会把第一个参数以第二个参数为基底转化为十进制的数字,由于parseInt是诸位转化的所以:
	parseInt(1123, 2)     //3
	parseInt('1123abc', 2)     //3
	parseInt(456, 2)   //NaN

*3, 由于浏览器会把以0开头的数字解释为八进制的数字,以0x开头的数字解释为十六进制的数字,当parseInt的第一个参数为0获者0x开头的数字时parseInt会把这个数字先转化为十进制的字符串。然后再以radix为基底转化成十进制的数字:

	parseInt(011)    // 9
	parseInt(011, 2)  //先转为parseInt('9', 2)  所以返回NaN   0X开头的同理

注意: 当第一个参数是以0和0x开头的字符串时,parseInt会把其当成一个字符串解释,不会把其当成八进制或者十六进制的数字转化为十进制,只是当成一个正常的字符串
parseInt('0x123123', 2) // 0

  • parseFloat() 转为浮点型
    *其转化规则和parseInt 1和2的转化规则一致,只不过其会识别 ‘.’ 为数字的小数点。
最后上两个比较典型的面试题
	//将一个二进制的1010101011数字转化为16进制?
	//parseInt(1010101011, 2).toString(16)
	[1, 2, 3].map(parseInt) 
	// [1, NaN, NaN]
	//map有不懂的先去了解下用法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值