C1任务-44:隐式类型转换
每一个变量或者值都有其对应的类型,在JavaScrript中如Number、String、Boolean、Array、Object等。在强类型的语言中,不同类型的变量或值之间不能进行运算;在弱类型的语言中,不同类型的变量或值可进行一些运算,这主要是因为解释器做了隐式类型转换的工作。
任务目标
理解并掌握常见场景中隐式类型转换的规律
任务训练
字符串和数字的运算
1.字符串和数字进行加运算时,会将数字转换成字符串,然后和另一个字符串进行拼接
arnum1=‘123’
varnum2=12
varnum3=num1+num2
console.log(num3)//预期输出:‘12312’
2.字符串和数字进行减、乘、除运算,以及大小比较时,会将字符串转换成数字,再和另一个数字进行运算或比较
3.各种值转换成布尔值
数字0,空字符串"",null,undefined转成布尔值的时候都是false
非0数字,非空字符串转成布尔值的时候都是true
任何数组(即使是空数组),任何对象(即使是空对象)转成布尔值的时候都是true
练习题
以下代码的预期输出是?
if分支语句中的条件部分会将值或者表达式的值最终转换成布尔值
空数组转换成布尔值为true,所以变量str会被赋值为hello
2.要想是一下JavaScript代码运行符合预期,空格处应该填什么运算符?
b为2,12会得到2,或者0+2会得到2
空格处应该填,true会被隐式转换成1参入运算
答:*