隐式类型转换

一、任务目标(建议完成时间:0.5小时)

理解并掌握常见场景中隐式类型转换的规律

二、任务背景

每一个变量或者值都有其对应的类型,在JavaScript中如Number、String、Boolean、Array、Object等。在强类型的语言中,不同类型的变量或值之间不能进行运算;在弱类型的语言中,不同类型的变量或值可进行一些运算,这主要是因为解释器做了隐式类型转换的工作。

三、任务内容

1、字符串和数字的运算

1.1 字符串和数字进行加运算时,会将数字转换成字符串,然后和另一个字符串进行拼接

 
  1. var num1 = '123'

  2. var num2 = 12

  3. var num3 = num1 + num2

  4. console.log(num3) // 预期输出:'12312'

1.2 字符串和数字进行减、乘、除运算,以及大小比较时,会将字符串转换成数字,再和另一个数字进行运算或比较

 
  1. var num1 = '123'

  2. var num2 = 12

  3. var num3 = num1 - num2

  4. console.log(num3) // 预期输出:111

  5. var num1 = '123'

  6. var num2 = 12

  7. var num3 = num1 * num2

  8. console.log(num3) // 预期输出:1476

  9. var num1 = '123'

  10. var num2 = 12

  11. var num3 = num1 / num2

  12. console.log(num3) // 预期输出:10.25

  13. var num1 = '123'

  14. var num2 = 15

  15. var t = num1 > num2

  16. console.log(t) // 预期输出:true

2、各种值转换成布尔值

2.1 数字0,空字符串"",null,undefined 转成布尔值的时候都是false

undefined,一个特殊值,通常用于指示变量尚未赋值。在高级程序设计语言设计应用程序时,用于指示变量尚未用单等号进行赋值(常量未定义)。

2.2 非0数字,非空字符串转成布尔值的时候都是true

2.3 任何数组(即使是空数组),任何对象(即使是空对象) 转成布尔值的时候都是true

 
  1. var a = 0

  2. if (a) {

  3. console.log('hello')

  4. } else {

  5. console.log('world')

  6. }

  7. // 当a=0或""或null或undefined的时候,预期输出:world

  8. // 当a=[]或空对象的时候,预期输出:hello

  9. // 当a=-1或"abc"时候,预期输出:hello

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王陈锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值