1. 程式人生 > >js中區分物件和陣列

js中區分物件和陣列

console.log(Object.prototype.toString.call([]));//[object Array]
console.log(Object.prototype.toString.call({name: "jerry"}));//[object Object]


這是因為toString為Object的原型方法,而Array ,function等型別作為Object的例項,都重寫了toString方法。不同的物件型別呼叫toString方法時,根據原型鏈的知識,呼叫的是對應的重寫之後的toString方法(function型別返回內容為函式體的字串,Array型別返回元素組成的字串.....),而不會去呼叫Object上原型toString方法(返回物件的具體型別),所以採用obj.toString()不能得到其物件型別,只能將obj轉換為字串型別;因此,在想要得到物件的具體型別時,應該呼叫Object上原型toString方法。


var arr=[1,2,3];
console.log(Array.prototype.hasOwnProperty("toString"));//true
console.log(arr.toString());//1,2,3
delete Array.prototype.toString;//delete操作符可以刪除例項屬性
console.log(Array.prototype.hasOwnProperty("toString"));//false
console.log(arr.toString());//"[object Array]"

相關推薦

js區分物件陣列

console.log(Object.prototype.toString.call([]));//[object Array] console.log(Object.prototype.toStri

js區分物件陣列常用方法

如果你只是用typeof來檢查該變數,不論是array還是object,都將返回‘object'。 1,Object.prototype.toString.call(obj) 判斷陣列 物件 Ob

jsjson物件字串的轉換

1.JSON.parse() : 字串–>json物件 var str = '{"name":"huangxiaojian","age":"23"}'//單引號寫在{}外,每個屬性名都必須用雙引號,否則會丟擲異常。 JSON.parse(str) 結果: Object age

JS實現字串陣列的相互轉化

        早上起來看了一道JS的面試題,是這樣描述的:利用var s1=prompt("請輸入任意的字串","")可以獲取使用者輸入 的字串,試程式設計將使用者輸入的字串“反轉”,並且將字串輸出

js操作json物件陣列讀取內容

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式,採用完全獨立於語言的文字格式,是理想的資料交換格式。同時,JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON資料不須要任何特殊的 A

JSArray物件String物件的常用方法

1.陣列的建立: 使用字面量建立: var arr = [10,20,20,40]; 使用建構函式建立陣列 var arr = new Array(1,2,3,4); 2.陣列元素的型別:

jsjson物件string互轉

json轉string的方法 /** * json物件轉字串形式 */ function json2str(o) { var arr = []; var fmt = function(s) { if (typeof s ==

js json字串 json物件 以及 物件陣列的區別

json 字串轉json 物件 轉換後就可以取出物件中的值 json字串: var jsonString = '{"bar":"property","baz":3}' ; json物件: var jsObject =

js json字串 json物件 以及 物件陣列的區別

json 字串轉json 物件 轉換後就可以取出物件中的值 json字串:var jsonString = '{"bar":"property","baz":3}'; json物件:var jsOb

JS遍歷普通陣列字典陣列的區別

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

js複製物件陣列的幾種方法

js中的基本資料型別可以直接進行復制 例如: var str1 = '123456' var str2 = str1 console.log(str2)  //123456 str1 = '123' console.log(str2)  //123 如果是引用型別

jsObject物件常用方法屬性

1、屬性 Object.prototype.writable:預設為false Object.prototype.enumerable:預設為false Object.prototype.configurable:預設為false Object.prototype.constructor:用

js物件陣列的定義

以下是三種建立空物件的方法: var emptyObj1 = {}; var emptyObj2 = new Object(); var emptyObj2 = Object.create(Object.prototype); 他們對Javascript來說是一樣的,新建立的三個物件會繼承obj

JS的一維陣列二維陣列

一維陣列: 對於一維陣列的宣告有以下幾種: 1.var fruit=new Array(); 2.var fruit =new Array(3); 3.var fruit = new Arrat('3', '4'); 二維陣列的宣告: 1.var array=new Array(new Arrat

jsjson字串json物件轉換

準備: 1.json字串 var jsonString="{”name“:"張三","value":"13"}"; 2.json物件 var jsonObject={”name“:"張三","value":"13"}; 3.json陣列 var jsonArray=[{”

JS物件陣列的區別使用

JS宣告物件或陣列 JS物件:{ } JS陣列:[ ] 1. 物件 var b={    m:'123',    n:'abc' } alert(b.m); alert(b.n); 2.一維陣列 var a=[1,2,3] alert(a[1]); alert(a.length);3.二維陣列 var ar

JS訪問物件屬性的點表示法方括號表示法

點表示法&&方括號表示法 從功能上看,這兩種訪問物件屬性的方法沒有任何區別。但方括號語法的主要優點是可以通過變數來訪問屬性,例如:  var propertyName = "name"; alert(person[propertyName]); //"Nich

js將字串轉換成物件陣列

一個物件,但如何把文字轉為物件呢。使用eval();注意一定要加括號,否則會轉換失敗 程式碼如下:var test='{ colkey: "col", colsinfo: "NameList" }'把文字轉化為物件var test='{ colkey: "col", col

JS集合物件(Array、Map、Set)及類陣列物件的使用與對比

原文地址 在使用js程式設計的時候,常常會用到集合物件,集合物件其實是一種泛型,在js中沒有明確的規定其內元素的型別,但在強型別語言譬如Java中泛型強制要求指定型別。 ES6引入了iterable型別,Array,Map,Set都屬於iter

JS判斷物件是不是陣列的方法

JavaScript中檢測物件的方法 1.typeof操作符 這種方法對於一些常用的型別來說那算是毫無壓力,比如Function、String、Number、Undefined等,但是要是檢測Array的物件就不起作用了。 利用typeof除了array和null判斷為obj