MST

星途 面试题库

面试题:JavaScript 隐式类型转换在逻辑判断中的应用

分析以下代码的输出,并详细说明隐式类型转换过程:`if (0 == false) { console.log('true'); } else { console.log('false'); }`,同时思考如果将 `==` 改为 `===` 会有什么不同,为什么?
15.6万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 使用 == 时的输出及隐式类型转换过程
    • 输出true
    • 隐式类型转换过程
      • 在JavaScript中,== 运算符会进行隐式类型转换。false 是布尔值,0 是数字。当 0false 进行比较时,false 会被转换为数字 0(根据JavaScript的类型转换规则,false 转换为数字时是 0true 转换为数字时是 1)。
      • 然后进行数字比较 0 == 0,这个比较结果为 true,所以会执行 console.log('true');
  2. 使用 === 时的输出及原因
    • 输出false
    • 原因=== 是严格相等运算符,它不会进行隐式类型转换。在这里,0 是数字类型,false 是布尔类型,它们的类型不同,所以 0 === false 直接返回 false,会执行 console.log('false');