MST

星途 面试题库

面试题:JavaScript 关系表达式逻辑判断之高级难度

假设有一个JavaScript函数`function checkValues(x, y) { return (x > 10 && y < 20) || (x === y); }`,请分析这个函数在以下几组输入情况下的返回值,并详细说明逻辑判断流程: 1. `checkValues(15, 18)` 2. `checkValues(5, 5)` 3. `checkValues(25, 25)` 另外,如果要使`(x > 10 && y < 20) || (x === y)`这个表达式永远返回`true`,在`x`和`y`都是整数的情况下,`x`和`y`需要满足什么样的条件?
22.1万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. checkValues(15, 18)

    • 首先分析(x > 10 && y < 20)
      • 这里x = 1515 > 10truey = 1818 < 20true
      • 所以(x > 10 && y < 20)整体为true
    • 再看(x === y)15!== 18,所以(x === y)false
    • 最后看整个表达式(x > 10 && y < 20) || (x === y),因为(x > 10 && y < 20)true,根据||(逻辑或)的特性,只要其中一个表达式为true,整个表达式就为true,所以返回值为true
  2. checkValues(5, 5)

    • 分析(x > 10 && y < 20)
      • x = 55 > 10false,所以(x > 10 && y < 20)整体为false
    • 分析(x === y)
      • x = 5y = 55 === 5true
    • 看整个表达式(x > 10 && y < 20) || (x === y),因为(x === y)true,根据||特性,整个表达式返回true
  3. checkValues(25, 25)

    • 分析(x > 10 && y < 20)
      • x = 2525 > 10true,但y = 2525 < 20false,所以(x > 10 && y < 20)整体为false
    • 分析(x === y)
      • x = 25y = 2525 === 25true
    • 看整个表达式(x > 10 && y < 20) || (x === y),因为(x === y)true,根据||特性,整个表达式返回true
  4. 使表达式永远返回true的条件

    • 对于(x > 10 && y < 20) || (x === y)永远返回true
      • 情况一:当x > 10 && y < 20恒成立时,即x > 10y < 20xy满足x ∈ (10, +∞)y ∈ (-∞, 20),并且xy为整数。
      • 情况二:当x === y恒成立时,即xy取任意相同的整数值,表达式也永远返回true