摘要:數組檢測使用例如兼容性可以使用以下方式,先檢測是否支持。用來比較兩個值是否嚴格相等,與相同基本類型檢測用來檢查一個數值是否為有限的用來檢查一個值是否為用來判斷一個值是否為整數。目前接觸到的一些方法,有新的日后再更新。
數組檢測 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); //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; }類型檢測
typeof操作符檢測給定變量的數據類型
typeof operand //operand 是一個表達式,表示對象或原始值
以下是一些常見類型的返回結果,值得注意的是null返回的是object,其實對于引用類型的判斷都為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" |
用來檢測 constructor.prototype是否存在于object 的原型鏈上
使用方式:
object instanceof constructor
舉個例子:
function A(){}; var a=new A(); a instanceof A //true a instanceof Object //true a.prototype instanceof Object //true2. isPrototypeOf
只要是原型鏈所派生的實例的原型,會返回true
Object.prototype.isPrototypeOf(instance);
這里需要注意的是與instanceof的區別,在constructors被復寫,而又沒有重新制定的情況下,照樣可以使用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() 方法用來判斷某個對象是否含有指定的自身屬性。
4. Object.is()用來比較兩個值是否嚴格相等,與===相同
基本類型檢測 NumberNumber.isFinite()
用來檢查一個數值是否為有限的(finite)
Number.isNaN()
用來檢查一個值是否為NaN
Number.isInteger()
用來判斷一個值是否為整數。在JavaScript中,整數和浮點數是同樣的儲存方法,所以1和1.0為同一個值.
Number.isSafeInteger()
JavaScript能夠準確表示的整數范圍在-2^53到2^53之間(不含兩個端點),超過這個范圍,無法精確表示這個值。
目前接觸到的一些方法,有新的日后再更新。
參考資料Check if object is array?
MOZILLA DEVELOPER NETWORK
阮一峰 《ECMAScript 6入門》
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80596.html
摘要:文本框獲得焦點時,選中其中所有的文本思路利用焦點事件事件,在文本框獲得焦點時,利用其方法選中所有文本。自動切換焦點思路利用事件檢測用戶輸入新字符后,文本框內的字符串是否已經達到最大長度,若達到最大長度,則將焦點切換至下一個文本框。 JavaScript 表單腳本 通過 document.forms 可以獲得一個包含當前頁面中所有表單的集合 HTMLFormElement 接口 下面是這...
摘要:最近讀完編寫可維護的,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團隊協作中特別有用,可維護性是一個非常大的話題,這本書是一個不錯的起點。擴展閱讀編寫可維護的歡迎來到石佳劼的博客,如有疑問,請在原文評論區留言,我會盡量為您解答。 最近讀完《編寫可維護的JavaScript》,讓我受益匪淺,它指明了編碼過程中,需要注意的方方面面,在團隊協作中特別有用,可維護性是一個非常大的話...
摘要:檢測函數從技術上講,中的函數是引用類型,同樣存在構造函數,每個函數都是其實例,比如不好的寫法然而,這個方法亦不能跨幀使用,因為每個幀都有各自的構造函數,好在運算符也是可以用于函數的,返回。 上周寫過一篇讀書筆記《編寫可維護的JavaScript》之編程實踐,其中 第8章 避免『空比較』是博主在工作中遇坑較多的雷區,所以特此把該章節重新整理分享,希望大家不再坑隊友(>﹏<)。 在 Jav...
摘要:能力檢測性能檢測基本模式語法目標不是識別特定的瀏覽器,而是識別瀏覽器的能力。更可靠的能力檢測能力檢測對于想知道某個特性是否會按照適當方式行事非常有用。所以在可能的情況下,要盡量使用進行能力檢測。 客戶端檢測 不到萬不得已,就不要使用客戶端檢測。只要能夠找到更通用的方法,就應該優先采用更通用的方法。先設計最通用的方案,然后再使用特定于瀏覽器的技術增強該方案。 能力檢測(性能檢測) 基本模...
摘要:它會指出一個類是繼承自另一個類的。測試測試代碼來源頁面倒計時的一段運用倒計時的一段腳本。截止日期符合日期格式,比如等有效日期。截止的天數小時分鐘秒數組成的對象。 清楚節點內的空格 function cleanWhitespace(element) { //如果不提供參數,則處理整個HTML文檔 element = element || document; //...
閱讀 2380·2021-11-18 10:07
閱讀 2335·2021-09-22 15:59
閱讀 3092·2021-08-23 09:42
閱讀 2294·2019-08-30 15:44
閱讀 1205·2019-08-29 15:06
閱讀 2331·2019-08-29 13:27
閱讀 1226·2019-08-29 13:21
閱讀 1428·2019-08-29 13:13