首先,由于JavaScript是弱类型语言(弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便,也就是说变量在声明时不需要指定数据类型,变量由赋值操作确定数据类型),所以在JavaScript的类型转换中就存在了强类型语言所没有的隐式转换。
1.1 JavaScript中的隐式转换(自动类型转换)
简单定义: 不同数据类型的数据在做运算的时候可以进行默认的数据类型的转换。 隐式转换通常遵循以下几点规则:
1.数字+字符串:数字转换为字符串。
2.数字+布尔值:true转换为1,false转换为0。
3.字符串+布尔值:布尔值转换为true或者false。
4.布尔值+布尔值
对于上面的案例得到的结果,不确信输出类型的小伙伴可以通过typeof()方法来查看变量的当前类型。
<div class="jb51code">
<pre class="brush:js;">
console.log(typeof(11));//number
console.log(typeof("11"));//string
console.log(typeof(true));//boolean