JS中精確判斷物件的型別
var a = [1,2,3,4,5];
var b = function(){}
var c = {'age':18,'sex':'男'}
console.log(typeof a,typeof b, typeof c)
console.log(Object.prototype.toString.apply(a),Object.prototype.toString.call(b),Object.prototype.toString.apply(c))
在toString方法被呼叫時,會執行下面的操作步驟:
1. 獲取this物件的[[Class]]屬性的值。
2. 計算出三個字串"[object ", 第一步的操作結果Result(1), 以及 "]"連線後的新字串。
3. 返回第二步的操作結果Result(2)。
[[Class]]是一個內部屬性,所有的物件(原生物件和宿主物件)都擁有該屬性.在規範中,[[Class]]是這麼定義的:
內部屬性描述
[[Class]]一個字串值,表明了該物件的型別。
其過程簡單說來就是:1、獲取物件的類名(物件型別)。2、然後將[object、獲取的類名、]組合並返回。
因此在JS中準確判斷資料型別用:Object.prototype.toString.call(obj) 即可
相關推薦
js中精確判斷物件型別--關於typeof 和Object.prototype.toString方法的區別
在javascript中可以使用typeof來判斷資料型別,但typeof只能判斷區分基本型別,即number、string、boolean、undefinded和object這5種; <script type="text/javas
JS中精確判斷物件的型別
var a = [1,2,3,4,5]; var b = function(){} var c = {'age':18,'sex':'男'} console.log(typeof a,typeof b, typeof c) console.log(Object.prototy
JavaScript精確判斷物件型別——Object.prototype.toString
面試中經常會問到js的資料型別有哪些,以及如何判斷資料型別的問題,對於基本資料型別undefined,string,boolean,number,symbol使用最常用的typeof即可判斷,但是對於null,array,{}使用typeof就會統一返回object字
Js中如何判斷一個物件為陣列型別
在說明如何判斷一個物件為陣列型別前,我們先鞏固下js的資料型別,js一共有六大資料型別:number、string、object、Boolean、null、undefined。 string: 由單引號或雙引號來說明,如"string"; number:陣列型別,比如整數、小數等; Boolea
python中判斷物件型別的函式——isinstance
isinstance是Python中的一個內建函式。是用來判斷一個物件的變數型別。 isinstance(object, class-or-type-or-tuple) 如果引數object是classinfo的例項,或者object是classinfo類的子類的一個例項, 返回True。如果object
js中值的基本型別與引用型別,以及物件引用,物件的淺拷貝與深拷貝
js有兩種型別的值:棧:原始資料型別(undefinen,null,boolead,number,string)堆:引用資料型別(物件,函式和陣列)兩種型別的區別是:儲存位置不同,原始資料型別直接儲存在棧(stack)中的簡單資料段,佔據空間小,大小固定,屬於被頻繁使用的資料,所以放入棧中儲存;引用資料型別儲
JS中怎樣判斷一個元素是不是物件
JS中,判斷物件型別時存在一個bug,那就是null型別也是object,那麼如何精準判斷一個元素是物件呢。 方法一:typeof function isObj(val) { return val !== null && typeof(val) === 'o
JS中如何判斷一個物件是否為空物件
1. 通過 for...in... 遍歷屬性 ,如果是空物件返回false, 否則返回 true 。例: var judgeObj = function(obj){ for(var
【js】判斷物件型別
對於判斷引數型別 typeof 這個估計是最常用的了 , 比如下面的兩個簡單的例子 typeof {} // 'object' typeof /\d/ // 'object' typeof null // 'object' typeof undefi
jQuery遍歷js中的array物件,判斷array中是否包含某值
JS中的array遍歷起來不太爽,其實jQuery提供了比較好的遍歷方法: $.each(typesList, function(index, value) { $("#all").append( '<div class="workflow_t
Day046--JavaScript-- DOM操作, js中的面向物件, 定時
一. DOM的操作(建立,追加,刪除) parentNode 獲取父級標籤 nextElementSibling 獲取下一個兄弟節點 children 獲取所有的子標籤 <!DOCTYPEhtml><htmllang="en"><
JavaScript 精確 判斷 資料型別
一、使用 typeof typeof 返回對數的型別 typeof 123 == 'number' typeof '123' == 'string' typeof [1,2,3] == 'object' typeof {a:1} == 'obje
CocosCreator開發筆記(20)-在JS中如何判斷undefined和null
不當用法 有時為了判斷某個值有效,JS新手會寫這種臃腫程式碼: if (data != null && typeof(data) != undefined && data != '') { ... } 為避免這種情況,首先要了解und
JavaScript基礎(3)-JS中的面向物件、定時器、BOM、位置資訊
一、建立物件的幾種常用方式、 1、使用Object或物件字面量建立物件; a、使用Object()內建的建構函式來建立物件,例如: var student = new Object(); // 建立一個studen
js中常見的錯誤型別
SyntaxError 語法錯誤 ReferenceError 引用錯誤 要用的變數沒有找到 RangeError 範圍錯誤 引數超範圍 TypeError  
JS中的history物件
window.history指向History物件,它表示當前視窗的瀏覽歷史。 History物件儲存了當前視窗訪問過的所有頁面網址。 1 history.back()//後退到前一個網址 等同於 history.go(-1) 方法: 1 history.back() 2
JS中的瀏覽器物件
*瀏覽器物件又稱BOM,是各個瀏覽器廠商根據DOM在在各自瀏覽器上的實現,不同瀏覽器有差異,實現方式不同。 常見的BOM主要包括:* window。 window物件可以作為js在瀏覽器上的全域性作用域,也可以表示瀏覽器的視窗。 navigator navigator物件表示瀏覽
JS中陣列與物件的遍歷方法例項
一、陣列的遍歷: 首先定義一個數組 arr=['snow','bran','king','nightking']; 1、for迴圈,需要知道陣列的長度; 2、foreach,沒有返回值,可以不知道陣列長度; arr.forEach(function(ele,index
js中關於Blob物件的介紹與使用 js中關於Blob物件的介紹與使用
js中關於Blob物件的介紹與使用 blob物件介紹 一個 Blob物件表示一個不可變的, 原始資料的類似檔案物件。Blob表示的資料不一定是一個JavaScript原生格式 blob物件本質上是js中的一個物件,裡面可以儲存大量的二進位制編碼格式的資料。
javascript中怎麼判斷物件{}為空
時候通過AJAX方法呼叫返回的是一個JSON物件,而這個物件可能在開發過程中會沒有資料是一個空{}。 JavaScript判斷object/json 是否為空,可以使用jQuery的isEmptyObject()方法。 function isEmptyObject(obj) {