下⾯ JavaScript 代码的输出是什么

function checkAge(data) {
  if (data === { age: 18 }) {
    console.log("You are an adult!");
  } else if (data == { age: 18 }) {
    console.log("You are still an adult.");
  } else {
    console.log(`Hmm.. You don't have an age I guess`
  }
}
checkAge({ age: 18 });
1029 次浏览
  • A、You are an adult!
  • B、You are still an adult.
  • C、Hmm.. You don't have an age I guess
在⽐较相等性,原始类型通过它们的值进⾏⽐较,⽽对象通过它们的引⽤进⾏⽐较。 JavaScript 检查对象是否具有对内存中相同位置的引⽤ 我们作为参数传递的对象和我们⽤于检查相等性的对象在内存中位于不同位置,所以它们的引⽤是不同的。 这就是为什么 { age: 18 } === { age: 18 } 和 {age: 18 } == { age: 18 } 返回 false 的原因。
挑战成功
2年前
挑战失败
2年前
挑战失败
2年前
挑战成功
4年前