javascript検出配列

3134 ワード

ECMAScript 5の配列は、変数が配列であるかどうかを検出することを目的とするisAray法を導入しています.
しかし、ie 6、7などの古いブラウザにはこのような方法はありません.Zakasに書いた本の中から一つの関数を摘んで、基本的に優雅に大部分の需要を満たすことができます.
関数は以下の通りです
 
 1 function isArray(arr) {
 2   if (typeof Array.isArray === "function") {
 3       return Array.isArray(arr);
 4   } else {
 5         return Object.prototype.toString.call(arr) === "[object Array]";
 6     }
 7 } 
 8 /*
 9 *else      
10 *call  toString this         ,           , 
11 *       *   '[object Array]',       Array   。 
12 *       Array *toString   ,        , Object
13 * “   ”  ,           **   ,*         
14 * “   ”。
15 */
 
 
 
もちろん、より頼りない方法がありますが、一般的には効果的です.
1 function isArray(arr) {
2   return typeof arr.sort() === "function";  
3 }
4 /*
5 *           sort  ,            ~~   
6 *   ,            js      sort  ,    
7 *          。
8 */