js隐式转换
其他转换为数值类型
- 所有其他数据类型转为数值的隐式转换,都是使用的Number方法进行转换的
- 会进行隐式转换具体情况
- 除了加法以外的运算符(-、*、/、%)
- 自操作运算符
- isNaN()
- ==(有一边是数值类型,另一边会转换为数值)
- < <= > >=(有一边是数值类型,另一边会转换为数值)
console.log('13' - 0)
console.log('13' * 1)
console.log('13' / 1)
var a = '13'
console.log(--a)
console.log(++a)
console.log(isNaN('apple'))
console.log('10' == 10)
console.log('10' > 9)
console.log('10' < 9)
其他转换为字符串类型
- 所有其他数据类型转为字符串的隐式转换,都是使用的String方法进行转换的
- 会进行隐式转换具体情况
- +(加号),一边是字符串,另一边会转换成字符串
- 数据当作对象的属性名的时候,会隐式转换成字符串
console.log(13+'1')
var obj1 = {}
var obj2 = {}
obj2[obj1] = '111'
console.log(obj2)
其他转换为布尔类型
- 所有其他数据类型转为布尔的隐式转换,都是使用的Boolean方法进行转换的
- 会进行隐式转换具体情况
- 取反(!)
- 逻辑运算
- 条件判断的时候(条件分支,循环分支)
console.log(!'hello world')
if('hello world'){
console.log('hello world')
}
while('hello world'){
console.log('hello world')
}