javascript中的数字和数字有什么区别?

时间:2017-12-21 07:55:08

标签: javascript numbers instanceof typeof

输出:

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

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

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

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

2 个答案:

答案 0 :(得分:1)

  

如何使第二个工作?

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

  

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

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

var x = new Number(5);
x instanceof Number // true

答案 1 :(得分:0)

typeof(x)始终返回表示类型x所属的字符串。

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

您的案例中的

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

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