-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
\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
\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
};\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
* @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
*/ \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
* @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