『壹』 js判斷 是否為函數
可以通過typeof進行判斷是否為函數,typeof用法如下:
typeof 運緩大算符有一個參數,即要檢查的變數或值
對變數或值調用 typeof 運算符將返回下列值之一:
undefined - 如果變數是 Undefined 類型的
boolean - 如果變數喚哪孝是 Boolean 類型的和稿
number - 如果變數是 Number 類型的
string - 如果變數是 String 類型的
object - 如果變數是一種引用類型或 Null 類型的
function - 如果變數代表一個函數
functionfunc(){}
typeoffunc=='function'//true
『貳』 JS判斷對象是否存在的十種方法
可以參考下面的兩種方法:
1、直接判斷對象不為null
if (!myObj) {
var myObj = { };
}
Javascript語言是"先解析,後運行",解析時就已經完成了變數聲明
2、使用window對象判斷某對象是否存在
if (!window.myObj) {
var myObj = { };
}
(2)js怎麼判斷是否為方法擴展閱讀:
javascript函數
charCodeAt(index)返回一個整數,該整數表現String對象中指定位置處的字元的Unicode編碼
concat(string2)銜接兩條或少條字元串
fromCharCode(num1, num2, …,BB霜, numN)獲取指定的Unicode值並返回字元串
indexOf(searchString, startIndex) 返回字元串中第一個呈現指定字元串的地位
lastlndexOf(searchString, startIndex) 返回字元串中最後一個呈現指定字元串的地位
match(regex) 在字元串中查覓指定值
『叄』 JS判定是否原生方法
這篇文章介紹了js判定是否原生方法 有需凳碰要的朋友可以參考一下瀏覽器的趨勢是加入越來越多對象 像Worker 同時也為舊有的對象添加新方法 如何兼容它的第一步就是檢測它們是否存在 沒有則補上自己的兼容代碼 這時問題就來了 有的類庫是給你做了這一步 但有時沒有 有時是做了 但並不符合標准 因此單純是typeof Array prototype map === "function"可能不夠棗察談用 這時isNative方法就要登場了 我一直用的版本 自己寫的
復制代碼 代碼如下: var isNative = function(method){//判定是否為原生方法 return !! method && (/{s*[native code]s*}/ test(method+"") || /{s*/* source code not available */s*}/ test(method+""));//這里是為了兼容opera x的 }但世界這么大 肯定也有研究過這問題 下面是Diego Perini的版本 指出safari對原生方法的toString值其實也是個不合群的
復制代碼 代碼如下: var isNative = function(object method) { return object && method in object && typeof object[method] != string && // IE & W C browser return "[native code]" // Safari < = will return "[function]" (/{s*[native code]s*}|^[function]$/) test(object[method]); }它比我的版本多一個參數 能指定是那個原生對象的方法 但一個參數與兩個參數是沒關系的 結果只是表明 我們倆離完美還有段距離 即使這兩個函數取並集 可能還不是正確的全集 當然這不是[native code]或者 source code not available還是[function]的問題 因為要javascript中 很容易山寨各種方法與對象 如 下面的代碼就可以成功騙過檢測代碼
復制代碼 代碼如下: window test = { toString: function() { return [function]; } };isNative(window test); // true 最後我從nwmathers中找到這個
復制代碼 代碼如沒配下: lishixin/Article/program/Java/JSP/201311/20194
『肆』 js判斷方法是否存在
if(typeofyourfunctionname==='function'){
賣孝慎配埋//存在且是function
}else{
寬螞//不存在或不是function
}