qappleh / Interview

我是追梦赤子心,公众号「深圳湾码农」的作者,某上市集团公司高级前端开发,深耕前端领域多年,每天攻破一道题,带你从0到1系统构建web全栈完整的知识体系!

Home Page:https://github.com/qappleh/Interview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

第10题(2019-08-02):输出以下代码运行结果

qappleh opened this issue · comments

commented
1 + "1"

2 * "2"

[1, 2] + [2, 1]

"a" + + "b"  
commented

答案:
11
4
1,22,1
aNaN

解析:
1 + "1"
加性操作符:如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来

所以值为:“11”

2 * "2"
乘性操作符:如果有一个操作数不是数值,则在后台调用 Number()将其转换为数值。

所以值为4

[1, 2] + [2, 1]
Javascript中所有对象基本都是先调用valueOf方法,如果不是数值,再调用toString方法。

所以两个数组对象的toString方法相加,值为:"1,22,1"

"a" + + "b"
后边的“+”将作为一元操作符,如果操作数是字符串,将调用Number方法将该操作数转为数值,如果操作数无法转为数值,则为NaN。

所以值为:"aNaN"

以上均参考:《Javascript高级程序设计》

commented

@qappleh 顶一个