var a = 10
var b = new Number(10)
console.log(a instanceof Number)
console.log(b instanceof Number)
任何人都可以讓我知道上面兩個聲明和a和b的定義有什麼區別。Var和新的區別
var a = 10
var b = new Number(10)
console.log(a instanceof Number)
console.log(b instanceof Number)
任何人都可以讓我知道上面兩個聲明和a和b的定義有什麼區別。Var和新的區別
第一個聲明就像原始數據類型。
雖然在您使用new Number(10)
的第二個聲明中,它被認爲是一個包裝函數或class
來將您的編號保存在object
中。
要看到實際的區別,現在檢查的實際類型的變量,在這兩種情況下:
console.log(typeof(a)) //should give you "number"
console.log(typeof(b)) //should give you "object"
的var
關鍵字是可變的只是一個簡單的聲明。 new
關鍵字用於生成某種類型的新的object
。爲了充分理解它們,您需要在編程中查看對象。
明確指出您正在創建一個新號碼,new Number(10)
會爲該號碼創建一個新的wrapper object,而將一個數字定義爲變量會創建一個integer primitive value。這樣,你就會得到檢查他們typeof
時不同的結果:
var a = 10;
var b = new Number(10);
console.log(typeof a);
console.log(typeof b);
希望這有助於! :)
很確定它創建了一個數字原始值...其餘的似乎是正確的。 – Shadow
哎呀,我的部分略有疏忽:P修正:) –
感謝兄弟的澄清,但是當我們聲明var a = 10時,我們發現了一些針對變量但沒有構造函數的方法。所以你可以解釋一下,因爲在JavaScript中沒有整數概念,並且JavaScript數字總是以雙精度浮點數的形式存儲。 –
第一個創建一個原語。另一個對象。
爲Number對象的主要用途是:
1)如果參數不能被轉換成一個數字,它返回NaN。
2)在非構造函數上下文中(即沒有new運算符),Number可用於執行類型轉換。
在理論上是有區別的,但在實踐中沒有。當JavaScript需要成爲一個對象時,JavaScript引擎會自動將一個基元放入一個對象中。
var number = 42;
// calling .toFixed will 'box' the primitive into a number object,
// run the method and then 'unbox' it back to a primitive
console.log(number.toFixed(2));
我發現的唯一用法是如果你想從構造函數返回一個基元。
function Foo() {
return 42;
}
var foo = new Foo();
console.log(foo); // foo is instance of Foo
function Bar() {
return new Number(42);
}
var bar = new Bar();
console.log(bar); // bar is instance of Number
提醒
new Number(10) == new Number(10) return false
也許這篇文章可以幫助解釋[**新的Number()**(https://stackoverflow.com/questions/2381399/what - 這是新的數字和數字在JavaScript之間的差異)其他我相信會明白你的理解'新數字()' – NewToJS
可能重複[字符串之間有什麼區別JavaScript中的文字和String對象?](https:// stackoverflow。com/questions/17256182/what-is-the-difference-between-string-literals-and-string-objects-in-javascript) – Chang
題目很差,'a'和'b'都是'var' –