1.输出什么?
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 });
- A: You are an adult!
- B: You are still an adult.
- C: Hmm… You don’t have an age I guess
知识点
- === 与 == 的区别
- 数据结构和类型
转载地址: https://github.com/lydiahallie/javascript-questions#18-whats-the-output 解析 答案:C
解析: 当比较是否相等时,基本类型是比较它们的值,而对象则是比较它们的引用地址是否相同。js检查对象在内存中是否是同一个引用地址。
题干中这两个对象进行比较的时候,作为参数传递的对象在内存中引用的地址与我们用来检查相等的对象的内存地址是不同的。
所以 { age: 18 } === { age: 18 } 和 { age: 18 } == { age: 18 } 都返回false。
|