MST

星途 面试题库

面试题:JavaScript 逻辑操作符边界条件之对象与非对象混合运算

在JavaScript中,有对象obj = {name: 'test'}; 变量num = 5; 变量str = ''; 请分析并写出(obj && num && str), (obj || num || str)的返回值及其原理。
11.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 分析 (obj && num && str)

    • 原理:在JavaScript中,&& 运算符是逻辑与运算符,它的运算规则是从左到右依次计算操作数。如果操作数是真值(true 或者可以转换为 true 的值),则继续计算下一个操作数;如果操作数是假值(false 或者可以转换为 false 的值),则返回该假值,并且不再计算后续操作数。
    • 计算过程
      • obj 是一个对象,对象在JavaScript中被视为真值,所以继续计算 num
      • num 的值为 5,数字 5 在JavaScript中被视为真值,所以继续计算 str
      • str 的值为空字符串 '',空字符串在JavaScript中被视为假值,所以 (obj && num && str) 返回 ''
    • 返回值''
  2. 分析 (obj || num || str)

    • 原理|| 运算符是逻辑或运算符,同样从左到右依次计算操作数。如果操作数是真值,则返回该真值,并且不再计算后续操作数;如果操作数是假值,则继续计算下一个操作数,直到找到一个真值或者所有操作数都计算完毕,如果所有操作数都是假值,则返回最后一个操作数。
    • 计算过程
      • obj 是一个对象,对象在JavaScript中被视为真值,所以 (obj || num || str) 直接返回 obj
    • 返回值{name: 'test'}