javascript中如何判斷類型匯總
前言
我們在寫封裝的插件或者函數(shù)時,常常用到JS的數(shù)據(jù)類型判斷,典型的案例就是深度拷貝函數(shù)用到數(shù)據(jù)類型判斷,這個知識點在面試的時候也是經(jīng)??嫉降囊粋€問題。本文就來給大家總結(jié)了下javascript中判斷類型的相關(guān)資料,下面話不多說了,來一起看看詳細的介紹吧
String
一個字符串始終是一個字符串,所以這一塊是很容易。除非使用new(new String)調(diào)用,否則typeof將返回“object”。所以也要包含那些可以使用的字符串instanceof。
// Returns if a value is a string
function isString (value) {
return typeof value === 'string' || value instanceof String;
}
Number
From typeof more things than just an ordinary number will return "number" like NaN and Infinity. To know if a value really is a number the function isFinite is also required.
從類型更多的東西,而不僅僅是普通的數(shù)字將返回像NaN和無限的“數(shù)字”。要知道值是否真的是數(shù)字,函數(shù)isFinite也是必需的。
// Returns if a value is really a number
function isNumber (value) {
return typeof value === 'number' && isFinite(value);
}
Array
在javascript 數(shù)組中不是像java和其他語言中那樣的真正數(shù)組。它們實際上是對象,因此typeof將為它們返回“對象”。要知道某些東西是否真的是一個數(shù)組,它的構(gòu)造函數(shù)可以與Array進行比較。
// Returns if a value is an array
function isArray (value) {
return value && typeof value === 'object' && value.constructor === Array;
}
// ES5 actually has a method for this (ie9+)
Array.isArray(value);
Function
// Returns if a value is a function
function isFunction (value) {
return typeof value === 'function';
}
Object
很多東西都是javascript中的對象。要知道值是否是可以具有屬性并循環(huán)的對象,可以將其構(gòu)造函數(shù)與Object進行比較。它不適用于從類創(chuàng)建的對象,因此可以使用instanceof運算符。
// Returns if a value is an object
function isObject (value) {
return value && typeof value === 'object' && value.constructor === Object;
}
Null & undefined
大多數(shù)情況下,您不需要顯式檢查null和undefined,因為它們都是假值。然而,要做到這一點,下面的功能就可以了。
// Returns if a value is null
function isNull (value) {
return value === null;
}
// Returns if a value is undefined
function isUndefined (value) {
return typeof value === 'undefined';
}
Boolean
對于布爾值, typeof就足夠了,因為它返回true和false的“boolean”。
// Returns if a value is a boolean
function isBoolean (value) {
return typeof value === 'boolean';
}
RegExp
RegExp是對象,因此唯一需要檢查的是構(gòu)造函數(shù)是否為RegExp。
// Returns if a value is a regexp
function isRegExp (value) {
return value && typeof value === 'object' && value.constructor === RegExp;
}
Error
javascript中的錯誤與許多其他編程語言中的“異?!毕嗤?。它們有幾種不同的形式,例如Error,TypeError和RangeError。一個instanceof語句對他們來說已經(jīng)足夠了,但我們還要確保我們還檢查錯誤所具有的“message”屬性。
// Returns if value is an error object
function isError (value) {
return value instanceof Error && typeof value.message !== 'undefined';
}
Date
日期實際上不是javascript中的數(shù)據(jù)類型。但要知道是否有某個Date對象,可以使用instanceof進行檢查。
// Returns if value is a date object
function isDate (value) {
return value instanceof Date;
}
Symbol
// Returns if a Symbol
function isSymbol (value) {
return typeof value === 'symbol';
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
- 五種js判斷是否為整數(shù)類型方式
- js判斷undefined類型,undefined,null, 的區(qū)別詳細解析
- 客戶端js判斷文件類型和文件大小即限制上傳大小
- js判斷數(shù)據(jù)類型如判斷是否為數(shù)組是否為字符串等等
- JS通過分析userAgent屬性來判斷瀏覽器的類型及版本
- JavaScript判斷輸入是否為數(shù)字類型的方法總結(jié)
- 通過JS判斷聯(lián)網(wǎng)類型和連接狀態(tài)的實現(xiàn)代碼
- js 判斷各種數(shù)據(jù)類型的簡單方法(推薦)
- 利用js判斷瀏覽器類型(是否為IE,Firefox,Opera瀏覽器)
- JS如何判斷瀏覽器類型和詳細區(qū)分IE各版本瀏覽器
相關(guān)文章
JavaScript實現(xiàn)函數(shù)重載的代碼示例
在JavaScript中并沒有直接支持函數(shù)重載的機制,但是可以通過一些技巧來模擬函數(shù)重載的效果,比如使用參數(shù)判斷,使用默認參數(shù),對象參數(shù),這些方法都可以實現(xiàn)類似函數(shù)重載的效果,所以本文就給大家介紹一下JavaScript如何實現(xiàn)函數(shù)重載,需要的朋友可以參考下2023-08-08
JS新標簽頁打開的方法大全(讓你的網(wǎng)站訪問更加便捷)
在開發(fā)Web應用中我們常常需要在當前頁面打開一個鏈接,但又不希望離開當前頁面,這篇文章主要給大家介紹了關(guān)于JS新標簽頁打開的方法大全,通過這些方法可以讓你的網(wǎng)站訪問更加便捷,需要的朋友可以參考下2023-10-10
jquery SweetAlert插件實現(xiàn)響應式提示框
為了滿足用戶體驗度,使用SweetAlert插件實現(xiàn)響應式提示框效果非常好,下面通過這篇文章給大家介紹jquery SweetAlert插件實現(xiàn)響應式提示框,需要的朋友可以參考下2015-08-08
小程序怎樣讓wx.navigateBack更好用的方法實現(xiàn)
這篇文章主要介紹了小程序怎樣讓wx.navigateBack更好用的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11
動態(tài)加載iframe時get請求傳遞中文參數(shù)亂碼解決方法
這篇文章主要介紹了動態(tài)加載iframe時get請求傳遞中文參數(shù)亂碼解決方法,需要的朋友可以參考下2014-05-05

