我正在嘗試將數組對象聲明爲數組對象,並發現JSON.stringify未正確處理數組類對象時,它被定義爲數組對象。Javascript數組對象與數組像對象 - 澄清
,請參閱下文更加清晰, - >jsFiddle
var simpleArray = []; //note that it is defined as Array Object
alert(typeof simpleArray); // returns object -> Array Object
simpleArray ['test1'] = 'test 1';
simpleArray ['test2'] = 'test 2';
alert(JSON.stringify(simpleArray)); //returns []
它能正常工作並返回我{"test1":"test 1","test2":"test 2"}
當我改變
var simpleArray = [];
到var simpleArray = {};
。
有人可以提供一些燈光或一些參考,我可以閱讀更多?
編輯:
問題:當typeof運算simpleArray = []
和simpleArray = {}
返回的對象,爲什麼JSON.stringify不能夠在這兩種情況下返回{"test1":"test 1","test2":"test 2"}
?
我明白那部分,我想知道的是爲什麼JSON.stringify在聲明爲[]時無法處理。 – 2012-02-07 21:46:29
謝謝!我正在尋找instanceof。我正在嘗試使用typeof,它在兩種情況下都返回對象。 – 2012-02-07 21:53:12
由於ES 5還有'Array.isArray(...)'(15.4.3.2),相反,它是框架安全的。它可以被模擬。 – PointedEars 2012-02-07 22:14:14