yisainan / web-interview

我是齐丶先丶森,收集整理全网面试题及面试技巧,旨在帮助前端工程师们找到一份好工作!更多详见公众号「前端面试秘籍」
MIT License
2.61k stars 507 forks source link

[选择题] 44.(单选题)下面代码的输出是什么 #1022

Open qiilee opened 4 years ago

qiilee commented 4 years ago
let a = 3;
let b = new Number(3) 
let c = 3;

console.log(a == b); 
console.log(a === b); 
console.log(b === c);
A:true false true
B: false false true
C: true false false
D: false true true

答案:C

解析:

new Number ()是一个内置的函数构造函数。虽然它看起来像一个数字,但它并 不是一个真正的 数 字 : 它 有 一堆额外的功能,是一个对象。

当我们使用 == 运算符时,它只检查它是否具有相同的值。他们都有3的值,所以返回true

译者注:==会引发隐式类型转换,右侧的对象类型会自动转换为Number类型

然而,当我们使用 === 操作符是,类型和值都需要相等,Number()不是一个数字,是对象类型。两者都返回false