1. 程式人生 > >js判斷是不是空物件

js判斷是不是空物件

1.如何判斷一個物件是空物件
function IsNull(obj){
	if(obj instanceof Array){
		console.log('是陣列')
	}
	else if(obj == undefined){
		console.log('是undefined')
	}
	else if(obj == ''){
		console.log('字串')
	}
	else if(obj == null){
		console.log('是null')
	}
	else{
		for(var i in obj){
			return false
		}
		return true
	}
}

空物件的呈現是var obj = {}

    function IsEmptyObject(obj){
          if(!obj || typeof obj != 'object' || Array.isArray(obj)){
            return false;
          }
            //第一種
            //測試效能段
            /*
            console.time('first');
            if(JSON.stringify(obj) === '{}'){
                console.timeEnd ('first');
                return true
            }else{
                console.timeEnd ('first');
                return false;
            }
            */
return (JSON.stringify(obj) === '{}') //第二種 console.time('second'); for(var key in obj){ console.timeEnd ('second'); return false } console.timeEnd ('second'); return true; }

解決思路

第一種就是粗暴的直接轉字串,然後強行比較
第二種就是利用for in的原理,然後一旦進了迴圈,說明有key值,那就直接false啦,否則就是空物件

效能比較

下面測試一下兩個方法的效能比較

  • 第一種在a就是一個空物件的情況下,在Imac谷歌瀏覽器上平均耗時在0.012ms左右

  • 第二種在a就是一個空物件的情況下,在Imac谷歌瀏覽器上平均耗時在0.007ms左右,效能差距為兩倍

  • 第一種在a是一個普通物件的情況下,豆瓣的api物件,在Imac谷歌瀏覽器上平均耗時在0.08ms左右

  • 第二種在a是一個普通物件的情況下,豆瓣的api物件,在Imac谷歌瀏覽器上,第一次稍慢,0.02ms,平均耗時在0.0075ms左右,效能差距隨著物件越大,差距也會越大



相關推薦

js判斷陣列、物件或者存在

if(typeof(arr)=='undefined'?false:(arr.length==0?false:true)){ console.log('陣列不為空') } else { console.log('陣列不存在或者為空') } if(typeof

js判斷陣列,物件,字串是否為

1.判斷陣列    判斷陣列長度是否為0,此方法最有效var overlays = []; if(overlays.length==0){ console.log("陣列為空"); }else{ console.log("陣列不為空"); }2.判斷物件和字串

js判斷 能重復輸入相同的內容

document for put blog on() 判斷 gpo 輸入 內容 $(document).on(‘input propertychange‘,‘.level‘,function(){ va

js 判斷兩個物件是否相同

isObjectEqual (a, b) { // 獲取a、b的型別 var classNameA = toString.call(a) var classNameB = toString.call(b) if (classNameA === '[obj

js判斷是否為物件

var obj = {}; 1、toString(推薦) Object.prototype.toString.call(obj) === '[Object Object]' 2、construct

js判斷陣列或物件中的key是否存在

JS中陣列和物件是等同的,判斷一個key是否存在於陣列中(或物件是否包含某個屬性),我們可能馬上想到的是使用ary[key] == undefined來判斷key是否存在這個陣列或者是物件中,但是

常用的判斷陣列,物件

//    var a = ""; //    var a = " "; //    var a = null; //    var a = undefined; //    var a = []; //    var a = {}; //    var a = NaN;

JS判斷兩個物件內容是否相等的方法示例

這篇文章主要介紹了JS判斷兩個物件內容是否相等的方法,結合具體例項形式分析了javascript針對字串、陣列及物件的相關判斷技巧,需要的朋友可以參考下 本文例項講述了JS判斷兩個物件內容是否相等的方法。分享給大家供大家參考,具體如下: 我們知道,如果兩個物件即使內容

js判斷

function isNull(v){   switch (typeof v){   case 'undefined' : return true;   case 'string' : if(trim(v).length == 0) return true; brea

js判斷物件

1.如何判斷一個物件是空物件function IsNull(obj){ if(obj instanceof Array){ console.log('是陣列') } else if(obj == undefined){ console.log('是undef

表單提交時js頁面重新整理判斷輸入是否為

表單:給表單加上 onsubmit="return submitCheck();" <form action="index.php" method="post" onsubmit="return submitCheck();"> <table> <tr&

JS判斷提交表單能為等驗證

JS判斷提交表單不能為空等驗證 直接上程式碼,注意引入js <fieldset> <legend>使用者註冊</legend> <form method="post" name="form" action="use

js 判斷一個物件是否為方法總結

通常情況下,工作中寫邏輯的時候都會用到判斷一個物件是否為空的方法,巧的是今天正好有人問我這個問題,我竟然沒回答上來,很尷尬,決定研究一下總結下來,之前研究過但是久了不用就生疏了!大意啊 1.將json物件轉化為json字串,再判斷該字串是否為"{}" var data = {};

js判斷物件是否為物件的幾種方法

1.將json物件轉化為json字串,再判斷該字串是否為"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b);//true 2.for in 迴圈判斷 var obj = {}; var

js判斷物件的幾種方式

1.JSON.stringify方式 用JSON.stringify將物件轉換為json串,與'{}'做比較 let dataObject = {}; console.log(JSON.stringify(dataObject) == '{}'); // 返回true

JS判斷提交表單能為 等的驗證

轉自:https://blog.csdn.net/qiu512300471/article/details/23259811 <script type="text/javascript">function beforeSubmit(form){if(form.username.value==''

js 判斷物件是否為陣列物件

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ taglib prefix="shiro" uri="http://shiro

JS如何判斷物件,及typeof和instanceof的區別

一、ECMAScript中有5種基本資料型別,分別為Undefined,Null,Boolean,Number,String。另外還有一種複雜資料型別Object,Object本質上是由一組無序的名值對組成的。建立Object例項有兩種方法,第一種是使用new操

JS中怎樣判斷一個元素是物件

JS中,判斷物件型別時存在一個bug,那就是null型別也是object,那麼如何精準判斷一個元素是物件呢。 方法一:typeof function isObj(val) { return val !== null && typeof(val) === 'o

js 判斷物件是否為字串

var ageForCheckbox; // 不定義 var result = !ageForCheckbox || parseInt(ageForCheckbox) < 41 console.log("result = " + result); //true v