js判斷是不是空物件
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