腾讯前端面试的一道题引发的数据类型转化知识的复习

题目是这样的:

let result=100+true+21.2+null+undefined+"Tencent"+[]+null+9+false;        //输出结果为"NaNTencentnull9false" 

看着很复杂,实际上是很简单的基础知识,+号遇到字符串,则把非字符串转化为字符串再进行拼串,基于toString()函数;+号没有遇到字符串的话,那么两边都要转化为数字在进行运算,是基于Number()进行隐式转换的。

true是Boolean值,Number(true);输出1,100+true=101

101+21.2=122.2

122.2+null  //输出122.2;             Number(null)  //输出0

122.2+undefined;//输出NaN        undefined转化为数字为非法运算,输出NaN,既not a number

NaN+"Tencent";   //输出"NaNTencent"          NaN转化为字符串为"NaN"

"NaNTencent"+[];   //输出"NaNTencent"        []为空数组,转化为字符串为""

"NaNTencent"  +null;   //输出"NaNTencentnull"          null转化为字符串为"null"

  "NaNTencentnull" +9;  //输出"NaNTencentnull9"   

"NaNTencentnull9"   +false;  //输出"NaNTencentnull9false"      false转化为字符串为"false"   

 

js类型转换表

说到函数转字符串,试着用toString转化函数,输出了函数本身代码,也不知道是什么原理,求大佬教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值