返回

JavaScript 运算符优先级面试题深入解析

前端

JavaScript常见的运算符优先级面试题

在JavaScript面试中,运算符优先级是一个常见的考察点。理解运算符的优先级有助于我们编写出简洁高效的代码,并避免出现意外的结果。

一、什么是运算符优先级

运算符优先级是指不同运算符在运算时执行顺序的规则。优先级高的运算符会先执行,而优先级低的运算符会后执行。运算符优先级通常由以下因素决定:

  • 结合性: 从左到右或从右到左结合。
  • 类型: 算术运算符、逻辑运算符等。
  • 单目或双目: 单目运算符仅作用于一个操作数,而双目运算符作用于两个操作数。

二、常见的运算符优先级

JavaScript中的运算符优先级从高到低可分为以下几类:

  • (): 圆括号
  • []: 方括号
  • .: 点运算符
  • **** 、/、%:**乘除取余运算符
  • +、-: 加减运算符
  • **==、!=、===、!==:** 比较运算符
  • **<、>、<=、>=:** 关系运算符
  • &&: 逻辑与运算符
  • ||: 逻辑或运算符
  • !: 逻辑非运算符

三、一道面试题

面试官可能会问这样的题目:返回的是什么? 到底是true还是false ?

1 &lt;&lt; 2 &lt;&lt; 3

让我们来分析一下这道题:

  • 第一步: 圆括号的优先级最高,但这里没有圆括号。
  • 第二步: 从左到右依次执行运算符,先执行左移运算符<<,然后是关系运算符<。
  • 第三步: 左移运算符的优先级高于关系运算符,因此先执行左移运算符。
  • 第四步: 1<<2 = 4,2<<3 = 8。
  • 第五步: 4<8,返回true。

因此,这道题的答案是true

四、练习题

为了加深对运算符优先级的理解,你可以尝试解答以下练习题:

  • 1 + 2 * 3 + 4 % 5
  • (1 << 2) + (3 > 4)
  • !true && true

五、总结

理解运算符优先级对于写出简洁高效的JavaScript代码至关重要。通过掌握常见的运算符优先级规则,我们可以避免编写出容易出错或产生意外结果的代码。

在面试中,运算符优先级也是一个常见的考察点。通过熟悉运算符优先级,我们可以从容应对面试官的提问,展现出扎实的编程功底。