数据类型(四)类型转换与隐式类型转换
显示类型转换面试题
1 | console.log(["1", "2", "3"].map(parseInt))// [1, NaN, NaN] |
- map((item, index, arr)):当前值,下标,整个数组
- parseInt(string, radix):当前字符串,进制
1 | console.log(parseInt(1/0, 19))// 18 |
1 | console.log(parseInt(parseInt, 16))// 15 |
1 | console.log(parseInt({}, 16))// NaN |
常见的隐式类型转换
- 比较操作符:两侧值的类型不同时执行
- 当操作数是对象,另一个操作数是字符串或数字时会首先调用valueOf方法,当valueOf方法返回的不是基本类型时,才会去调用toString方法
- 四则运算,除加法外,其他运算均会被转换为数字进行运算,遇到NaN,结果均为NaN。
- number + number = number
- number + string = string
- string + number = string
- object + number = number
- object + string = string
- boolean + string = string(含true/false)
- boolean + number = number
- 条件语句
面试题
- 重写valueOf和toString方法,使得a==1&&a==2&&a==3为true
1 | let a = { |
- 下面代码输出什么?
1 | [9,8,7,6][1,2,3] // outputs 6 |
- 解释:逗号运算符会返回最后一个表达式的值
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 姚永坤的小窝!
评论