表达式计算(答案)

课后整理 2020-12-14

答案和解析:

1. 3

解析:布尔值在"&&"运算时候,如果左为true时,总是返回右边,反之则直接返回左边。

2. "foo"

解析:布尔值在"||"运算时候,如果左为false时,总是返回右边,反之则直接返回左边。

3. 1

解析:原因同上一道题。

4. 3

解析:","运算,直接输出最后一个

5. underfined

解析:{foo:1}中无key为“0”的属性,没有该属性,则返回默认值underfined。

6. true

解析:[+true, +false]为[1,0],整体[true, false][1,0]中[1,0]可看做","运算,所以整体简化为[true, false][0]。

7. 6

解析:'52'.split('')为["5", "2"],++["5", "2"][0]为6。

8. "b45"

解析:隐式转换为字符串相连接。

9. 2

解析:[0..toString.length]相当于(0).toString.length。

10. true

解析:相当于比较字符串"[object Object]b"和"[object Object]a"。

11. undefined

解析:没有变量接收自执行函数返回值。

12. false

解析:"foo"为字符串,new function为对象。

13. "f,o,o"

解析:先把字符串'foo'劈开为数组,然后与空数组相加,则直接返回值字符串的值。

14. undefined

解析:第一个标识符vars为标签,第二个标识符vars为变量,把声明的变量vars赋值给自己,则返回值还是默认值undefined。