返回
JavaScript 运算符优先级面试题深入解析
前端
2023-09-21 18:02:42
JavaScript常见的运算符优先级面试题
在JavaScript面试中,运算符优先级是一个常见的考察点。理解运算符的优先级有助于我们编写出简洁高效的代码,并避免出现意外的结果。
一、什么是运算符优先级
运算符优先级是指不同运算符在运算时执行顺序的规则。优先级高的运算符会先执行,而优先级低的运算符会后执行。运算符优先级通常由以下因素决定:
- 结合性: 从左到右或从右到左结合。
- 类型: 算术运算符、逻辑运算符等。
- 单目或双目: 单目运算符仅作用于一个操作数,而双目运算符作用于两个操作数。
二、常见的运算符优先级
JavaScript中的运算符优先级从高到低可分为以下几类:
- (): 圆括号
- []: 方括号
- .: 点运算符
- **** 、/、%:**乘除取余运算符
- +、-: 加减运算符
- **==、!=、===、!==:** 比较运算符
- **<、>、<=、>=:** 关系运算符
- &&: 逻辑与运算符
- ||: 逻辑或运算符
- !: 逻辑非运算符
三、一道面试题
面试官可能会问这样的题目:返回的是什么? 到底是true还是false ?
1 << 2 << 3
让我们来分析一下这道题:
- 第一步: 圆括号的优先级最高,但这里没有圆括号。
- 第二步: 从左到右依次执行运算符,先执行左移运算符<<,然后是关系运算符<。
- 第三步: 左移运算符的优先级高于关系运算符,因此先执行左移运算符。
- 第四步: 1<<2 = 4,2<<3 = 8。
- 第五步: 4<8,返回true。
因此,这道题的答案是true。
四、练习题
为了加深对运算符优先级的理解,你可以尝试解答以下练习题:
1 + 2 * 3 + 4 % 5
(1 << 2) + (3 > 4)
!true && true
五、总结
理解运算符优先级对于写出简洁高效的JavaScript代码至关重要。通过掌握常见的运算符优先级规则,我们可以避免编写出容易出错或产生意外结果的代码。
在面试中,运算符优先级也是一个常见的考察点。通过熟悉运算符优先级,我们可以从容应对面试官的提问,展现出扎实的编程功底。