摘要:類型判斷在中,核心給我們提供了方法來(lái)判斷一個(gè)變量的類型,返回的是字符串型,但是對(duì)于數(shù)組,或者對(duì)象和函數(shù),我們就沒有什么辦法了。更新一個(gè)類型判斷的插件代碼擴(kuò)展工具
javascript類型判斷
在js中,核心給我們提供了typeof方法來(lái)判斷一個(gè)變量的類型,返回的是字符串型,但是對(duì)于數(shù)組,或者對(duì)象和函數(shù),我們就沒有什么辦法了。但是我們可以引用對(duì)象也就是Object的toString方法來(lái)實(shí)現(xiàn)對(duì)類型的判斷,例:
例子
var arr = []; console.log(typeof arr);//object console.log(Object.prototype.toString.call(arr));//[object Array]
Ps:對(duì)于數(shù)組而言,arr的typeof后的類型是Object,這并不是我們想要的,而用Object的toString方法來(lái)說(shuō)就很明確的可以判斷出是什么類型的了,但是[object Array]這種形式,我們不好在程序里面來(lái)處理,所以本人在日常工作中封裝了一個(gè)簡(jiǎn)單的方法來(lái)返回出類型的字符串,例:
例子
function getType(ele){ if(!ele)return undefined; var type = Object.prototype.toString.call(ele), reg = /[object (.*)]/, arr = reg.exec(type); return arr[1]; }
Ps:這樣就返回了一個(gè)字符串形式的類型,可以返回String,Number,Bloolen,Function,Array,Object,undefined,Null這幾個(gè)字符串,那么在程序中就好判斷了。
更新一個(gè)類型判斷的插件代碼
var Type = (function() { var Type = function() { if (!this instanceof Type) { return new Type(); } }; var menth = { version: "v1.0", getType: function(ele) { if (window == document && document != window) { return "window"; } else if (ele.nodeType === 9) { return "document"; } else if (ele.callee) { return "arguments"; } else if (isFinite(ele.length) && ele.item) { return "NodeList"; } else { var type = Object.prototype.toString.call(ele), reg = /[object (.*)]/, arr = reg.exec(type); return arr[1]; } }, isArray : function(ele){ return (this.getType(ele) === "Array") ? true : false; }, isFunction : function(ele){ return (this.getType(ele) === "Function") ? true : false; }, isObject : function(ele){ return (this.getType(ele) === "Object") ? true : false; }, isString : function(ele){ return (this.getType(ele) === "String") ? true : false; }, isNumber : function(ele){ return (this.getType(ele) === "Number") ? true : false; }, isBoolen : function(ele){ return (this.getType(ele) === "Boolean") ? true : false; }, isUndefined : function(ele){ return (this.getType(ele) === "Undefined") ? true : false; }, isNull : function(ele){ return (this.getType(ele) === "Null") ? true : false; } } Type = extendDeep(Type.prototype,menth); // 擴(kuò)展工具 function extendDeep() { var i, target = arguments[0] || {}, astr = "[object Array]", toStr = Object.prototype.toString, yArr = Array.prototype.slice.call(arguments, 1); for (i = 0, len = yArr.length; i < len; i++) { var temp = yArr[i]; for (var j in temp) { if (target.hasOwnProperty(j) && (target[i] === temp[i])) { continue; } if (temp.hasOwnProperty(j)) { if (typeof temp[j] === "object") { target[j] = (toStr.call(temp[j] === astr)) ? [] : {}; extendDeep(target[j], temp[j]); } else { if (typeof temp[j] !== "undefined") { target[j] = temp[j]; } } } } } return target; } console.log(Type) return Type; })();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/87661.html
摘要:不過,根據(jù)伯克利大學(xué)的這篇文章來(lái)看,擁有豐富的開源庫(kù),是開發(fā)者在選擇一門開發(fā)語(yǔ)言時(shí),最重要的因素。擁有超過個(gè)可用的開源庫(kù),是目前世界上最大的開源庫(kù)集合。月份,我們發(fā)布了。這和年的情況是相反的。在的調(diào)查中,超過的受訪者表示他們正在使用。 showImg(https://segmentfault.com/img/bVblvke?w=693&h=300); 原文標(biāo)題:This year in...
摘要:原文鏈接翻譯于今天我們興奮的發(fā)布了的嘗鮮版,一個(gè)新的靜態(tài)類型檢查器。為添加了靜態(tài)類型檢查,以提高開發(fā)效率和代碼質(zhì)量。這最終形成一個(gè)高度并行增量式的檢查架構(gòu),類似。知道縮小類型范圍時(shí)做動(dòng)態(tài)檢查的影響。 原文鏈接:https://code.facebook.com/posts/1505962329687926/flow-a-new-static-type-checker-for-java...
摘要:前端業(yè)務(wù)代碼工具庫(kù)不定時(shí)更新目的高效率完成前端業(yè)務(wù)代碼業(yè)務(wù)開發(fā)過程中,會(huì)經(jīng)常用到擴(kuò)展方法瀏覽器類型判斷表單驗(yàn)證常用方法等常用函數(shù),為避免不同項(xiàng)目多次復(fù)制粘貼的麻煩,這里統(tǒng)一封裝,并發(fā)布到,以提高開發(fā)效率。 utilscoreJS 前端業(yè)務(wù)代碼工具庫(kù)(不定時(shí)更新) 目的:高效率完成前端業(yè)務(wù)代碼 業(yè)務(wù)開發(fā)過程中,會(huì)經(jīng)常用到String,Number,Array,Object,Functio...
摘要:詳情怎樣規(guī)避地獄作者先介紹什么是地獄,以及在開發(fā)過程中怎樣去規(guī)避地獄,一時(shí)爽性能問題火葬場(chǎng)。詳情其他亮點(diǎn)匯總開發(fā)者大會(huì)已于北京時(shí)間月日凌晨在美國(guó)山景城正式啟幕。 【前端】 1. JavaScript 的新數(shù)據(jù)類型:BigInt BigInt?是 JavaScript 中的一個(gè)新的數(shù)字基本(primitive)類型,可以用任意精度表示整數(shù)。使用?BigInt?可以安全地存儲(chǔ)和操作大整數(shù),...
摘要:詳情怎樣規(guī)避地獄作者先介紹什么是地獄,以及在開發(fā)過程中怎樣去規(guī)避地獄,一時(shí)爽性能問題火葬場(chǎng)。詳情其他亮點(diǎn)匯總開發(fā)者大會(huì)已于北京時(shí)間月日凌晨在美國(guó)山景城正式啟幕。 【前端】 1. JavaScript 的新數(shù)據(jù)類型:BigInt BigInt?是 JavaScript 中的一個(gè)新的數(shù)字基本(primitive)類型,可以用任意精度表示整數(shù)。使用?BigInt?可以安全地存儲(chǔ)和操作大整數(shù),...
閱讀 4523·2022-09-16 13:49
閱讀 1468·2021-11-22 15:12
閱讀 1589·2021-09-09 09:33
閱讀 1107·2019-08-30 13:15
閱讀 1802·2019-08-29 15:30
閱讀 746·2019-08-27 10:52
閱讀 2695·2019-08-26 17:41
閱讀 1961·2019-08-26 12:11