面试时候遇到的一道题,因为不熟悉编译原理,被虐的体无完肤。。。
1 | //写出下面的打印结果 |
解析
第一个if语句中从左往右执行,0<100
为 true
,true<0
getPrimitive后变成 1<0
,因此第一个结果为 false
。
第二if语句中,+
优先级大于<
,因为变成 0<100<4
, 0<100
为 true
,true<4
getPrimitive后变成 1<4
,因此第一个结果为 true
。
javascript运算符笔记
运算符 | 描述 |
---|---|
. [] () | 字段访问、数组下标、函数调用以及表达式分组 |
++ – - ~ ! delete new typeof void | 一元运算符、返回数据类型、对象创建、未定义值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、减法、字符串连接 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小于、小于等于、大于、大于等于、instanceof |
== != === !== | 等于、不等于、严格相等、非严格相等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件 |
= oP= | 赋值、运算赋值 |
, | 多重求值 |