OSDN Git Service

Version 0.6.149, fix X.Audio & X.UI.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 03_XType.js
index a7a78aa..ed024ae 100644 (file)
@@ -1,10 +1,9 @@
-var\r
        /**\r
         * Array か?判定する。argumnets 等のフェイク Array は false なので注意。\r
-        * @funciton\r
-        * @alias X.Type._isArray\r
+        * @function\r
+        * @alias X.Type.isArray\r
         */\r
-       X_Type_isArray =\r
+var X_Type_isArray =\r
                new Function( 'v',\r
                        X_UA[ 'IE' ] < 5.5 || X_UA[ 'NetFront' ] < 4 ? // netfront3.4 は html に  instanceof をすると error になる\r
                                'return v&&v.push===Array.prototype.push' : // win ie5-, MacIE5.2\r
@@ -15,13 +14,13 @@ var
 \r
        /**\r
         * HTMLElement か?判定する。ちなみに return v instanceof Element は ie8 でエラー。\r
-        * @funciton\r
+        * @function\r
         * @alias X.Type.isHTMLElement\r
         */\r
        X_Type_isHTMLElement =\r
                new Function( 'v',\r
                        ( X_UA[ 'IE4' ] || X_UA[ 'MacIE' ] ) ?\r
-                               'return v&&v.tagName&&v.insertAdjacentHTML&&true' : // ie4 or MacIE5.23, v.all <- error\r
+                               'return v&&v.tagName&&v.insertAdjacentHTML&&!0' : // ie4 or MacIE5.23, v.all <- error\r
                        X_UA[ 'NetFront' ] < 4 ?\r
                                'return v&&v.nodeType===1' : // instanceof not a function. netfront3.4 は html に  instanceof をすると error になる\r
                        window[ 'HTMLElement' ] ?\r
@@ -32,9 +31,8 @@ var
 \r
 \r
 /**\r
- * http://pettanr.sourceforge.jp/test/type.html\r
- * ビルトイン方の判定に使用する関数を集めたもの。ブラウザのネイティブな判定関数には不可解な挙動があるので、X.Type を使用するほうがよい。\r
- * \r
+ * <p>ビルトイン型の判定に使用する関数を集めたもの。ブラウザのネイティブな判定関数には不可解な挙動があるので、X.Type を使用するほうがよい。\r
+ * <a href="http://pettanr.sourceforge.jp/test/type.html">http://pettanr.sourceforge.jp/test/type.html</a>\r
  * @namespace X.Type\r
  * @alias X.Type\r
  */\r
@@ -55,12 +53,13 @@ X[ 'Type' ] = {
 };\r
 \r
        /**\r
-        * Object か?判定する。typeof null === 'object' に対策済なので null は Object ではない。\r
-        * new String(), new Number(), new Boolean() も typeof object なので対策\r
+        * <p>Object か?判定する。\r
+        * <p>typeof null === 'object' に対策済なので null は Object ではない。\r
+        * <p>new String(), new Number(), new Boolean() も typeof object なので対策\r
         * @alias X.Type.isObject\r
         */\r
        function X_Type_isObject( v ){\r
-               return v && typeof v === 'object'; // && ( v !== v + '' && v !== v + 0 && v !== true ) ; // typeof null === 'object' に対策\r
+               return v && typeof v === 'object' && v !== v + '' && v !== v + 0 && v !== true; // typeof null === 'object' に対策\r
        };\r
        /**\r
         * Function か?判定する。\r
@@ -89,14 +88,14 @@ X[ 'Type' ] = {
         * @alias X.Type.isString\r
         */\r
        function X_Type_isString( v ){\r
-               return typeof v === 'string'; // v === v + ''; // 文字列の加算は IE で遅いかも。\r
+               return /* typeof v === 'string'; */ v === v + ''; // 文字列の加算は IE で遅いかも。\r
        };\r
        /**\r
-        * 数値か?判定する。\r
+        * 数値か?判定する。\r
         * @alias X.Type.isNumber\r
         */\r
        function X_Type_isNumber( v ){\r
-               return typeof v === 'number'; // v !== v || v + 0 === v;\r
+               return /* typeof v === 'number'; */ v + 0 === v || v !== v;\r
        };\r
        /**\r
         * finite か?判定する。isFinite( '123' ) === true に対策済。\r
@@ -120,7 +119,7 @@ X[ 'Type' ] = {
         */     \r
        function X_Type_isImage( v ){\r
                if( v && v.constructor === window.Image ) return true;\r
-               if( v && window.HTMLImageElement && v.constructor === window.HTMLImageElement ) return true; // ie6- は constructor が undef、HTMLImageElement が undef なので、HTMLElement の存在確認が必要\r
+               if( v && window.HTMLImageElement && v.constructor === window.HTMLImageElement ) return true; // ie6- は constructor が undef、HTMLImageElement が undef なので、HTMLElement の存在確認が必要\r
                if( X_UA[ 'WebKit' ] < 525.13 ){ // Safari3-\r
                        if( v && v.src !== undefined && v.onload !== undefined && X_Type_isNumber( v.height ) && X_Type_isNumber( v.width ) && X_Type_isBoolean( v.complete ) ){\r
                                return true;\r
@@ -145,7 +144,7 @@ X[ 'Type' ] = {
         * @alias X.Type.isUndefined\r
         */\r
        function X_Type_isUndefined( v ){\r
-               return v === void 0;\r
+               return v === undefined;\r
        };\r
 \r
 console.log( 'X.Core.Type' );\r