new Number()
和Number()
有什么区别?我知道new Number()
创建了一个Number
对象,而Number()
只是一个函数,但在什么情况下应该调用哪个,为什么呢?
在相关说明上,Mozilla表示:
Do not use a Boolean object to convert a non-boolean value to a boolean value. Instead, use Boolean as a function to perform this task.
x = Boolean(expression); // preferred x = new Boolean(expression); // don't use
为什么会这样?我以为结果是一样的呢?
typeof(Boolean("true")) === "boolean"
, 而typeof(new Boolean("true")) === "object"
。 - hobbsBoolean
对象)在布尔上下文中始终求值为true
:if (new Boolean(0)) { alert("Oops, 0 is true."); }
。要获取“预期”的值,请调用valueOf
:new Boolean(0).valueOf() === false
。 - Matthew Crumleynew Number(..)
,以及原始值。 - Erics