javascript中的数字和数字有什么区别? [重复]

问题描述 投票:-5回答:2

这个问题在这里已有答案:

输出:

var x = 5;
typeof (x) //will give number type as output

但是对于下面的代码,它返回false:

var x = 5;
x instanceof Number; //will give false as output

任何人都可以解释数字和数字之间的区别。我如何使第二个工作?

javascript numbers instanceof typeof
2个回答
0
投票

typeof(x)总是返回一个表示x所属类型的字符串。

instanceOf运算符使用prototype属性来标识实例是否属于某个类。

在你的情况下x instanceof Number;返回false,因为x是一个原始的,永远不会返回true。如果你确实希望它返回true,你可以将你的原语“包装”到Number类中,如下所示:

new Number(x) instanceof Number; //will give TRUE as output


1
投票

如何使第二个工作?

instanceof运算符检查给定变量是否是类的对象。根据MDN的定义,

instanceof运算符测试构造函数的prototype属性是否出现在对象的原型链中的任何位置。

要使其工作,您需要使用Number类'(或其任何后代类')构造函数来实例化变量:

var x = new Number(5);
x instanceof Number // true
© www.soinside.com 2019 - 2024. All rights reserved.