当前位置: 首页 > 面试题库 >

新Number()vs Number()

姬昊焱
2023-03-14
问题内容

new Number()和之间有什么区别Number()?我得到的是new Number()创建一个Number对象,Number()它只是一个函数,但是我什么时候应该调用它,为什么呢?

在相关说明中,Mozilla说:

不要使用布尔对象将非布尔值转换为布尔值。而是使用Boolean作为执行此任务的函数。

x = Boolean(expression);     // preferred
x = new Boolean(expression); // don't use

这是为什么?我以为结果是一样的?


问题答案:

Boolean(expression)将简单地将表达式转换为 boolean原始值 ,而new Boolean(expression)将围绕转换后的boolean值创建 包装对象

可以看出以下区别:

// Note I'm using strict-equals
new Boolean("true") === true; // false
Boolean("true") === true; // true

还有这个(感谢@hobbs):

typeof new Boolean("true"); // "object"
typeof Boolean("true"); // "boolean"

注意: 虽然包装器对象将在必要时自动转换为基本体(反之亦然),但是只有一种情况可以想到,您将在哪里使用new Boolean,或者其他任何针对基本体的包装器-如果您想将属性附加到单个值。例如:

var b = new Boolean(true);
b.relatedMessage = "this should be true initially";
alert(b.relatedMessage); // will work

var b = true;
b.relatedMessage = "this should be true initially";
alert(b.relatedMessage); // undefined


 类似资料:
  • Ugly Number 描述 Write a function to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is no

  • Happy Number 描述 Write a function to determine if a number is "happy number". A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the

  • Ugly Number II 描述 Write a function to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence

  • Super Ugly Number 描述 Write a function to find the n-th super ugly number. Super ugly numbers are positive numbers whose all prime factors are in the given prime list primes of size k. For example, [1,

  • Type: Number Number对象的方法和函数的集合。 另请参见: MDN Number 注意事项: 每一个方法(method)都是Number对象的原型。 Function: Number.from 返回传递的参数作为数字,或null如果不是数字。 语法: Number.from ( ARG ) ; 参数: arg - (mixed)此参数返回作为一个数字。 返回: (number)的参

  • Javascript Number() 函数 Number() -- 把对象的值转换为数字 语法: Number( object ); 参数说明: object -- JavaScript 对象 返回值: 如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。 如果对象的值能够转换为数字,则返回对应的 Number 类型值。 如果对象的值无法转换为数