首页 > 试题广场 >

下面结果为真

[单选题]
下面结果为真的表达式是:()
  • null instanceof Object
  • null === undefined
  • null == undefined
  • NaN == NaN
推荐
答案是C。  null和undefined是不同的,但它们都表示“值的空缺”,判断相等运算符“==”认为两者是相等的(要使用严格相等运算符“===”来区分它们)。
编辑于 2017-05-23 14:50:34 回复(7)
1.instanceof运算符希望左操作数是一个对象,右操作数表示对象的类(初始化对象的构造函数)。如果左侧的对象是右侧对象的实例,返回true,否则返回false。
例如:计算o instanceof f  
首先计算f.prototype,然后在原型链中查找o,找到返回true

2.===严格相等运算符:首先计算其操作数的值,然后比较这两个值,比较过程中没有任何类型转换

3.==相等运算符:如果两个操作数不是同一类型,那么会尝试进行一些类型转换,然后进行比较
(1)尽管null和undefined是不同的,但它们都表示“值的空缺”,两者往往可以互换,因此==运算符认为两者是相等的
(2)NaN表示非数字值,特殊之处:它和任何值都不相等,包括自身。判断NaN的方法:x!=x返回true
发表于 2017-10-19 20:51:07 回复(5)
typeof null === 'object' //true
null instanceof Object //false
发表于 2018-03-25 10:50:12 回复(3)
instance of 操作符用于判断前者是否为后者的实例,返回逻辑值
发表于 2017-07-18 09:04:06 回复(1)
NaN是一个不确定数,所以NaN不能等于NaN.
发表于 2017-09-06 13:58:40 回复(1)
null表示为空的引用;instanceof 表示某个变量是否是某个对象的实例 ;null的类型为object,所以typeof(null)=='object'为true。null并非某个对象的实例,所以选A
发表于 2019-04-12 00:59:10 回复(0)

遇事不决上MDN,参照
JavaScript相等性判断

比较操作符

Undefined Null Number String Boolean Object
Undefined true true false false false IsFalsy(B)
Null true true false false false IsFalsy(B)
Number false false A === B A === ToNumber(B) A=== ToNumber(B) A== ToPrimitive(B)
String false false ToNumber(A) === B A === B ToNumber(A) === ToNumber(B) ToPrimitive(B) == A
Boolean false false ToNumber(A) === B ToNumber(A) === ToNumber(B) A === B ToNumber(A) == ToPrimitive(B)
Object false false ToPrimitive(A) == B ToPrimitive(A) == B ToPrimitive(A) == ToNumber(B) A === B
编辑于 2020-04-14 10:45:37 回复(1)
typeof null === 'object' //true
null instanceof Object //false
null == undefined  // true
发表于 2020-07-19 17:07:30 回复(0)
===比较类型和值,==比较值
发表于 2021-10-30 19:33:36 回复(0)
尽管instanceof运算符的右操作数是构造函数,但计算过程实际上是检测了对象的继承关系,而不是检测创建对象的构造函数。我的理解是null就是object类型,他们不是继承关系。
发表于 2017-08-07 21:46:25 回复(0)
NaN不能用来判断?
发表于 2017-06-03 10:13:07 回复(4)
typeof null === 'object' //true null instanceof Object //false
发表于 2022-09-01 23:25:26 回复(0)
typeof null === 'object' //true
null instanceof Object //false
发表于 2022-08-13 17:21:24 回复(0)
null == undefined // true
null 其实属于自己的类型 Null,而不属于 Object类型。typeof 之所以会判定为 Object 类型,是因为 JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。

发表于 2022-06-09 15:43:40 回复(0)

instanceof 运算符在 JavaScript 中用于测试构造函数的 prototype 属性是否出现在对象的原型链中。"原型链"是一个用于实现继承和共享属性的 JavaScript 对象模型。

当你执行 null instanceof Object 时,JavaScript 会试图查找 null 的原型链以检查其中是否有 Object.prototype。但是,null 是一个特殊的值,表示“没有对象”,因此它没有原型链。由于 null 没有原型链,所以 Object.prototype 不可能出现在 null 的原型链中,因此 null instanceof Object 的结果是 false

这就是为什么我们说 null 不是对象类型的原因。尽管在 JavaScript 中,几乎所有的东西都是对象,但 nullundefined 是两个例外。它们都是特殊的值,表示“没有值”或“没有对象”,并且它们都没有原型链或对象包装器。所以,当你试图对它们执行像 instanceof 这样的操作时,结果通常会让人感到意外。

o instanceof f 这个表达式的结果取决于 of 的具体值。在 JavaScript 中,instanceof 运算符用来检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

当你执行 o instanceof f 时,JavaScript 会试图查找 o 的原型链以检查其中是否有 f.prototype。如果 f.prototype 出现在 o 的原型链中,那么 o instanceof f 的结果就是 true。否则,结果就是 false

这是一个例子:

function F() {}
var o = new F();
console.log(o instanceof F);  // 输出:true

在这个例子中,我们定义了一个名为 F 的构造函数,并用它来创建了一个新的对象 o。因为 o 是由 F 构造的,所以 F.prototype 出现在了 o 的原型链上,因此 o instanceof F 的结果是 true

然而,如果我们改变 o 或者 F.prototype,那么结果可能就会不同。例如:

function F() {}
var o = new F();
F.prototype = {};
console.log(o instanceof F);  // 输出:false

在这个例子中,我们改变了 F.prototype,所以它不再出现在 o 的原型链上。因此,即使 o 最初是由 F 构造的,但现在 o instanceof F 的结果也是 false

总的来说,你可以把 instanceof 看作是一种检查对象是否由特定构造函数创建,或者是否继承自特定构造函数的一种方式。

发表于 2023-10-09 11:35:30 回复(0)
null 其实属于自己的类型 Null,而不属于Object类型,typeof 之所以会判定为 Object 类型,是因为JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。
发表于 2023-01-04 21:00:05 回复(0)
Object.prototype.__proto__ === null,   // true

发表于 2021-09-28 09:06:10 回复(0)
instanceof表示左边是右边的实例==是等于,表示值相同就行,而null和undifend都表示值为空,因此本题正确===是全等,表示值和类型都相等,而null和undifend类型不等,因此错误nan与任何值都不想等,包括自身
发表于 2021-04-12 13:52:43 回复(0)
typeof null === 'object' //true null类型对象 null instanceof Object //false 记住吧就行 null == undefined  // true 转为数字0
发表于 2021-03-18 23:14:20 回复(0)
<p>a instance of b测试的是左面的是不是右面b的实例</p>
发表于 2020-11-19 16:40:04 回复(0)
B 选项中使用恒等于,表示不仅值相同,数据类型也相同,null 是 Object 类型,undefined 是 undefined 类型,不相等
发表于 2020-08-21 10:43:17 回复(0)