隐式类型转换(悄悄地转换)

隐式类型转换(悄悄地转换):重点,难点
六大数据类型:数值、对象、字符串、布尔值、undefined、null

一、 转数值 Number()
1) 布尔类型转数值
true为1
false为0
例如:true + 1输出的值为2
或者:
let flag=?;//未知的flag 如果flag为true 表达式为 3,如果flag为flase 表达式为0
方式一: let flag=true;console.log(flag3);//输出为3
let flag=flase;console.log(flag
3);//输出为0
方式二: let flag=true;console.log(flag?3:0);//输出为3
let flag=flase;console.log(lag?3:0);//输出为0

2)字符串转数值(注意:一般参与到 乘除法减法等运算中 特殊的加法:例如:“1e2“ * 3 输出值为300”)
满足的条件按:
1.看起来像数字,那他就能转
例如:Number(“123”),返回值是:123; Number(“123.33”),返回值是:123.33;
2.不管怎么,转成的结果一定是数值类型
3.转不了就是NaN
例如:Number(“12.3.4”),返回值是:NaN
4.“Infinity"和"1e12”(科学计数法:1e12表示:1*10^12,都可以转数字)
例如:Number(“Infinity”)输出值为:Infinity;或者Number(“2.3-3”)输出值为: 0.0023;
5. 不同进制"0xaa(十六进制)"/“0b101010(二进制)”/"0123123"可以转。Number(“0xaa”)输出值为:170;或者Number(“0b101010”)输出值为: 1398127;
6.表达式是不可以转数字的,不然值就是NaN。
例如:Number(“1+2”)输出值为:NaN;

3)undefined:值就是NaN
例如:Number(undefined)输出值为:NaN;
4) null:转数值被定义成0
Number(undefined)输出值为:undefined;
5)对象:一般对象转数值都是NaN
特殊情况特殊处理,在转字符串中处理

二、 转字符串 String(),使用场景,字符串参与的加法都会优先转字符串/如果加法运算中没有数字参与,一 定会转字符串拼接
1例如:23 + ""输出值为字符串类型:"123"或者1 +“2”+3 输出值为字符串类型:“123”
1)数字转字符串:加引号,但特殊的表现形式不一样
例如:String(”123“) 输出值为:123;或者 123 + "“输出值为:“123”
2)布尔类型:直接加引号
例如:true—“true”
false–“false”
3)对象转字符串
例如:String(null) 输出值为:“null”;或者String(1e2l)输出值为:“100”(科学计数法中,当数值大于20时输出的是科学计数法:例如:String(1e21)输出值为:“1e+21) 或者String(Infinity)输出值为:“Infinity”
对象怎么转:
一般情况下 对象转字符串的结果是”[object object]”
分类:函数:(约定了名字和执行内容的一个整体,怎么写就怎么显示)
例如:// let obj = {a:123123,b:12312323}
// console. log(String(obj))
//显示{a:123123,b:12312323}
数组[1,2,3,4,5,6](显示结果是去掉中括号:不管有多少个[]符号)
例如:let arr = [1, [2, [3]]]
console. log(String(arr))
//输出:1,2,3
数组和对象结合写法
例如:let arr = [1, [2, {x:3}]]/let arr = [1, [2, “[object object]”]]
console. log(String(arr))
//输出:1,2,[object object]

补充:这些都是假象,真实的转字符串的方法:调用了它自己的toString的方法(万物皆对象,是对象就有tostring方法):包装对象和原型
例如:let a={
toString: function () {
return"abc"//"abc"就是函数执行的返回结果
}
}
console.1og(a + ")
4)其他类型转字符串:undefined–“undefined” 或 null–“null”

三、转布尔类型 Boolean()
false:假(六大假值):"" 0 undefined null NaN false
true: 真:其余都是真

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值