摘要:數(shù)組檢測(cè)使用例如兼容性可以使用以下方式,先檢測(cè)是否支持。用來(lái)比較兩個(gè)值是否嚴(yán)格相等,與相同基本類型檢測(cè)用來(lái)檢查一個(gè)數(shù)值是否為有限的用來(lái)檢查一個(gè)值是否為用來(lái)判斷一個(gè)值是否為整數(shù)。目前接觸到的一些方法,有新的日后再更新。
數(shù)組檢測(cè) 1.使用Array.isArray()
Array.isArray(obj)
例如:
Array.isArray([]) //true Array.isArray({}) //false
兼容性:
Chrome | Firefox | IE | Opera | Safari |
---|---|---|---|---|
5 | 4.0(2.0) | 9 | 10.5 | 5 |
可以使用以下方式,先檢測(cè)是否支持Array.isArray。
if(Array.isArray){ return Array.isArray(obj); }2. 使用instanceof
arr instanceof Array
例如:
var arr=[]; console.log(arr instanceof Array); //true3. 使用Object.prototype.toString方法
if( Object.prototype.toString.call(arr) === "[object Array]" ) { console.log("yes"); }4.使用constructor的方法
function isArray(obj){ return !!obj && Array === obj.constructor; }類型檢測(cè)
typeof操作符檢測(cè)給定變量的數(shù)據(jù)類型
typeof operand //operand 是一個(gè)表達(dá)式,表示對(duì)象或原始值
以下是一些常見類型的返回結(jié)果,值得注意的是null返回的是object,其實(shí)對(duì)于引用類型的判斷都為object。
Type | Result |
---|---|
Undefined | "undefined" |
Null | "object" (see below) |
Boolean | "boolean" |
Number | "number" |
String | "string" |
Symbol (new in ECMAScript 2015) | "symbol" |
Host object (provided by the JS environment) | Implementation-dependent |
Function object (implements [[Call]] in ECMA-262 terms) | "function" |
Any other object | "object" |
用來(lái)檢測(cè) constructor.prototype是否存在于object 的原型鏈上
使用方式:
object instanceof constructor
舉個(gè)例子:
function A(){}; var a=new A(); a instanceof A //true a instanceof Object //true a.prototype instanceof Object //true2. isPrototypeOf
只要是原型鏈所派生的實(shí)例的原型,會(huì)返回true
Object.prototype.isPrototypeOf(instance);
這里需要注意的是與instanceof的區(qū)別,在constructors被復(fù)寫,而又沒(méi)有重新制定的情況下,照樣可以使用isPrototype
var A = { //something } var B = Object.create(A); var C = Object.create(B); console.log(A.isPrototypeOf(C)); // true console.log(C instanceof A); //TypeError3. hasOwnProperty
hasOwnProperty() 方法用來(lái)判斷某個(gè)對(duì)象是否含有指定的自身屬性。
4. Object.is()用來(lái)比較兩個(gè)值是否嚴(yán)格相等,與===相同
基本類型檢測(cè) NumberNumber.isFinite()
用來(lái)檢查一個(gè)數(shù)值是否為有限的(finite)
Number.isNaN()
用來(lái)檢查一個(gè)值是否為NaN
Number.isInteger()
用來(lái)判斷一個(gè)值是否為整數(shù)。在JavaScript中,整數(shù)和浮點(diǎn)數(shù)是同樣的儲(chǔ)存方法,所以1和1.0為同一個(gè)值.
Number.isSafeInteger()
JavaScript能夠準(zhǔn)確表示的整數(shù)范圍在-2^53到2^53之間(不含兩個(gè)端點(diǎn)),超過(guò)這個(gè)范圍,無(wú)法精確表示這個(gè)值。
目前接觸到的一些方法,有新的日后再更新。
參考資料Check if object is array?
MOZILLA DEVELOPER NETWORK
阮一峰 《ECMAScript 6入門》
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/80596.html
摘要:文本框獲得焦點(diǎn)時(shí),選中其中所有的文本思路利用焦點(diǎn)事件事件,在文本框獲得焦點(diǎn)時(shí),利用其方法選中所有文本。自動(dòng)切換焦點(diǎn)思路利用事件檢測(cè)用戶輸入新字符后,文本框內(nèi)的字符串是否已經(jīng)達(dá)到最大長(zhǎng)度,若達(dá)到最大長(zhǎng)度,則將焦點(diǎn)切換至下一個(gè)文本框。 JavaScript 表單腳本 通過(guò) document.forms 可以獲得一個(gè)包含當(dāng)前頁(yè)面中所有表單的集合 HTMLFormElement 接口 下面是這...
摘要:最近讀完編寫可維護(hù)的,讓我受益匪淺,它指明了編碼過(guò)程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話題,這本書是一個(gè)不錯(cuò)的起點(diǎn)。擴(kuò)展閱讀編寫可維護(hù)的歡迎來(lái)到石佳劼的博客,如有疑問(wèn),請(qǐng)?jiān)谠脑u(píng)論區(qū)留言,我會(huì)盡量為您解答。 最近讀完《編寫可維護(hù)的JavaScript》,讓我受益匪淺,它指明了編碼過(guò)程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話...
摘要:檢測(cè)函數(shù)從技術(shù)上講,中的函數(shù)是引用類型,同樣存在構(gòu)造函數(shù),每個(gè)函數(shù)都是其實(shí)例,比如不好的寫法然而,這個(gè)方法亦不能跨幀使用,因?yàn)槊總€(gè)幀都有各自的構(gòu)造函數(shù),好在運(yùn)算符也是可以用于函數(shù)的,返回。 上周寫過(guò)一篇讀書筆記《編寫可維護(hù)的JavaScript》之編程實(shí)踐,其中 第8章 避免『空比較』是博主在工作中遇坑較多的雷區(qū),所以特此把該章節(jié)重新整理分享,希望大家不再坑隊(duì)友(>﹏<)。 在 Jav...
摘要:能力檢測(cè)性能檢測(cè)基本模式語(yǔ)法目標(biāo)不是識(shí)別特定的瀏覽器,而是識(shí)別瀏覽器的能力。更可靠的能力檢測(cè)能力檢測(cè)對(duì)于想知道某個(gè)特性是否會(huì)按照適當(dāng)方式行事非常有用。所以在可能的情況下,要盡量使用進(jìn)行能力檢測(cè)。 客戶端檢測(cè) 不到萬(wàn)不得已,就不要使用客戶端檢測(cè)。只要能夠找到更通用的方法,就應(yīng)該優(yōu)先采用更通用的方法。先設(shè)計(jì)最通用的方案,然后再使用特定于瀏覽器的技術(shù)增強(qiáng)該方案。 能力檢測(cè)(性能檢測(cè)) 基本模...
摘要:它會(huì)指出一個(gè)類是繼承自另一個(gè)類的。測(cè)試測(cè)試代碼來(lái)源頁(yè)面倒計(jì)時(shí)的一段運(yùn)用倒計(jì)時(shí)的一段腳本。截止日期符合日期格式,比如等有效日期。截止的天數(shù)小時(shí)分鐘秒數(shù)組成的對(duì)象。 清楚節(jié)點(diǎn)內(nèi)的空格 function cleanWhitespace(element) { //如果不提供參數(shù),則處理整個(gè)HTML文檔 element = element || document; //...
閱讀 2368·2021-11-18 10:07
閱讀 2318·2021-09-22 15:59
閱讀 3077·2021-08-23 09:42
閱讀 2276·2019-08-30 15:44
閱讀 1191·2019-08-29 15:06
閱讀 2303·2019-08-29 13:27
閱讀 1210·2019-08-29 13:21
閱讀 1412·2019-08-29 13:13