面试时候遇到的一道题,因为不熟悉编译原理,被虐的体无完肤。。。
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= | 赋值、运算赋值 |
| , | 多重求值 |