成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript中的常用的檢測方法

muddyway / 1712人閱讀

摘要:數(shù)組檢測使用例如兼容性可以使用以下方式,先檢測是否支持。用來比較兩個(gè)值是否嚴(yán)格相等,與相同基本類型檢測用來檢查一個(gè)數(shù)值是否為有限的用來檢查一個(gè)值是否為用來判斷一個(gè)值是否為整數(shù)。目前接觸到的一些方法,有新的日后再更新。

數(shù)組檢測 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

可以使用以下方式,先檢測是否支持Array.isArray。

if(Array.isArray){
    return Array.isArray(obj);
}
2. 使用instanceof
arr instanceof Array

例如:

var arr=[];
console.log(arr instanceof Array); //true
3. 使用Object.prototype.toString方法
if( Object.prototype.toString.call(arr) === "[object Array]" ) {
   console.log("yes");
}
4.使用constructor的方法
function isArray(obj){
    return !!obj && Array === obj.constructor;
}
類型檢測

typeof操作符檢測給定變量的數(shù)據(jù)類型

typeof operand //operand 是一個(gè)表達(dá)式,表示對象或原始值

以下是一些常見類型的返回結(jié)果,值得注意的是null返回的是object,其實(shí)對于引用類型的判斷都為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"
對象類型檢測 1. instanceof

用來檢測 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 //true
2. isPrototypeOf

只要是原型鏈所派生的實(shí)例的原型,會返回true

Object.prototype.isPrototypeOf(instance);

這里需要注意的是與instanceof的區(qū)別,在constructors被復(fù)寫,而又沒有重新制定的情況下,照樣可以使用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);      //TypeError
3. hasOwnProperty

hasOwnProperty() 方法用來判斷某個(gè)對象是否含有指定的自身屬性。

4. Object.is()

用來比較兩個(gè)值是否嚴(yán)格相等,與===相同

基本類型檢測 Number

Number.isFinite()
用來檢查一個(gè)數(shù)值是否為有限的(finite)

Number.isNaN()
用來檢查一個(gè)值是否為NaN

Number.isInteger()
用來判斷一個(gè)值是否為整數(shù)。在JavaScript中,整數(shù)和浮點(diǎn)數(shù)是同樣的儲存方法,所以1和1.0為同一個(gè)值.

Number.isSafeInteger()
JavaScript能夠準(zhǔn)確表示的整數(shù)范圍在-2^53到2^53之間(不含兩個(gè)端點(diǎn)),超過這個(gè)范圍,無法精確表示這個(gè)值。

目前接觸到的一些方法,有新的日后再更新。

參考資料

Check if object is array?

MOZILLA DEVELOPER NETWORK

阮一峰 《ECMAScript 6入門》

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/80596.html

相關(guān)文章

  • JavaScript 表單腳本

    摘要:文本框獲得焦點(diǎn)時(shí),選中其中所有的文本思路利用焦點(diǎn)事件事件,在文本框獲得焦點(diǎn)時(shí),利用其方法選中所有文本。自動切換焦點(diǎn)思路利用事件檢測用戶輸入新字符后,文本框內(nèi)的字符串是否已經(jīng)達(dá)到最大長度,若達(dá)到最大長度,則將焦點(diǎn)切換至下一個(gè)文本框。 JavaScript 表單腳本 通過 document.forms 可以獲得一個(gè)包含當(dāng)前頁面中所有表單的集合 HTMLFormElement 接口 下面是這...

    PrototypeZ 評論0 收藏0
  • 《編寫可維護(hù)JavaScript》之編程實(shí)踐

    摘要:最近讀完編寫可維護(hù)的,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話題,這本書是一個(gè)不錯(cuò)的起點(diǎn)。擴(kuò)展閱讀編寫可維護(hù)的歡迎來到石佳劼的博客,如有疑問,請?jiān)谠脑u論區(qū)留言,我會盡量為您解答。 最近讀完《編寫可維護(hù)的JavaScript》,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話...

    張春雷 評論0 收藏0
  • JavaScript檢測原始值、引用值、屬性

    摘要:檢測函數(shù)從技術(shù)上講,中的函數(shù)是引用類型,同樣存在構(gòu)造函數(shù),每個(gè)函數(shù)都是其實(shí)例,比如不好的寫法然而,這個(gè)方法亦不能跨幀使用,因?yàn)槊總€(gè)幀都有各自的構(gòu)造函數(shù),好在運(yùn)算符也是可以用于函數(shù)的,返回。 上周寫過一篇讀書筆記《編寫可維護(hù)的JavaScript》之編程實(shí)踐,其中 第8章 避免『空比較』是博主在工作中遇坑較多的雷區(qū),所以特此把該章節(jié)重新整理分享,希望大家不再坑隊(duì)友(>﹏<)。 在 Jav...

    劉德剛 評論0 收藏0
  • JavaScript 客戶端檢測——“能力檢測注意要點(diǎn)

    摘要:能力檢測性能檢測基本模式語法目標(biāo)不是識別特定的瀏覽器,而是識別瀏覽器的能力。更可靠的能力檢測能力檢測對于想知道某個(gè)特性是否會按照適當(dāng)方式行事非常有用。所以在可能的情況下,要盡量使用進(jìn)行能力檢測。 客戶端檢測 不到萬不得已,就不要使用客戶端檢測。只要能夠找到更通用的方法,就應(yīng)該優(yōu)先采用更通用的方法。先設(shè)計(jì)最通用的方案,然后再使用特定于瀏覽器的技術(shù)增強(qiáng)該方案。 能力檢測(性能檢測) 基本模...

    Pluser 評論0 收藏0
  • JavaScript常用腳本集錦6

    摘要:它會指出一個(gè)類是繼承自另一個(gè)類的。測試測試代碼來源頁面倒計(jì)時(shí)的一段運(yùn)用倒計(jì)時(shí)的一段腳本。截止日期符合日期格式,比如等有效日期。截止的天數(shù)小時(shí)分鐘秒數(shù)組成的對象。 清楚節(jié)點(diǎn)內(nèi)的空格 function cleanWhitespace(element) { //如果不提供參數(shù),則處理整個(gè)HTML文檔 element = element || document; //...

    Acceml 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<