[¶î£]javascriptÖеÄÊý¾ÝÀàÐÍ¡¢ObjectÓëFunction
1. Êý¾ÝÀàÐÍ
javascriptÖаüº¬6ÖÖÊý¾ÝÀàÐÍ£ºundefined¡¢null¡¢string¡¢number¡¢booleanºÍobject¡£ÆäÖУ¬Ç°5
ÖÖÊÇÔʼÊý¾ÝÀàÐÍ£¬objectÊǶÔÏóÀàÐÍ¡£
objectÀàÐÍÖаüÀ¨Object¡¢Function¡¢String¡¢Number¡¢Boolean¡¢Array¡¢Regexp¡¢Date¡¢
Globel¡¢Math¡¢Error£¬ÒÔ¼°ËÞÖ÷»·¾³ÌṩµÄobjectÀàÐÍ¡£
2. ÀàÐÍÅжÏ
ͨ³£ÔÚjavascriptÖнøÐÐÀàÐÍÅжÏÖ÷Ҫͨ¹ý3ÖÖ·½Ê½£ºtypeof¡¢instanceof¡¢constructor¡£
2.1 typeof
typeof²Ù×÷¿ÉÄÜ·µ»ØµÄÀàÐÍΪundefined¡¢object¡¢number¡¢string¡¢function¡¢boolean¡£µ«ÊÇ»áÓÐÒ»
ЩÇé¿ö²¢²»ÄÜÍêÈ«ÅжÏ׼ȷ¡£±ÈÈçtypeof new String('')µÄֵΪobject¡£
2.2 constructor
ÓÐʱºòÎÒÃÇ¿ÉÄÜ»áºÜ͵ÀÁµÄʹÓÃa.constructor ==
String½øÐÐÀàÐÍÅжϣ¬µ«ÊÇconstructorÆäʵÊDz»¿¿Æ×µÄ¶«Î÷¡£ÒòΪµ±ÎÒÃǵ÷ÓÃa.constructorµÄʱºò£¬ÄÚ²¿²Ù×÷ÆäʵÊÇ
ToObject(a).prototype.constructor£¨ToObjectÊÇʲô£¬¿´ÏÂÎķֽ⣩¡£
¿´ÏÂÃæÒ»¶Î´úÂë¾ÍÄÜÃ÷°×£º
String
.
prototype
.
constructor
=
Number
;
alert
(
'test'
.
constructor
==
String
);
//Result£ºfalse
»òÕß
function
MyClass
()
{
}
MyClass
.
prototype
=
{};
alert
((
new
MyClass
).
constructor
==
MyClass
);
//Result£ºfalse
¶øÇÒ£¬Í¨¹ýconstructor²¢²»ÄÜÅжϳö¶ÔÏóʵÀýÀàÐ͵ļ̳йØÏµ¡£ÒòΪjavascriptµÄ¼Ì³ÐÆäʵÊÇͨ¹ýÔÐÍÁ´ÊµÏֵģ¨ÔÐÍÁ´ÊÇʲô£¬¿´
ÏÂÎķֽ⣩¡£
ÁíÍ⣬null.constructor»áÅ׳öÔËÐÐʱµÄTypeError£¬ËùÒÔʹÓÃconstructor³ýÁ˲»¿¿Æ×Í⣬»¹¿ÉÄܰéËæ×ÅÒì³£µÄ·ç
ÏÕ¡£
2.3 instanceof
Àý×Ó£ºa instanceof String
¹ØÓÚobjectÀàÐ͵ÄÅжϣ¬Ê¹ÓÃinstanceofÅжÏÊDZȽϿ¿Æ×µÄ·½·¨¡£instanceofËù×öµÄÊÂÇéÊÇ£¬ÏÈÈ¡³öÀàÐͶÔÏó(String)
µÄprototype³ÉÔ±(String.prototype)£¬È»ºóºÍÒªÅжÏÀàÐ͵ĶÔÏó(a)µÄÔÐÍÁ´ÖеĶÔÏóÖð¸ö±È½Ï¡£µ±·¢ÏÖÊÇÒ»¸ö¶ÔÏóµÄʱºò·µ»Ø
true£¬ÔÐÍÁ´Öе±Ç°½ÚµãÊÇnullµÄʱºò·µ»Øfalse¡£
ÀàÐÍÅжÏʾÀý£ºÅжÏÒ»¸ö±äÁ¿ÊÇ·ñÊÇ×Ö·û´®ÀàÐÍ
function
isString
(
str
)
{
return
(
typeof
str
==
'string'
||
str
instanceof
String
);
}
3. ÀàÐÍת»»
ecma262ÖÐÃèÊöÁËÒÔϼ¸ÖÖÀàÐÍת»»µÄ²Ù×÷£º£¨»¹ÓÐÆäËûµÄ±ÈÈçToInt32µÈ£¬ÕâÀï¾Í²»ÁÐÁË£©
ToNumber£º×ª»»³ÉnumberÐÍ
ToString£º×ª»»³ÉstringÐÍ
Ïà¹ØÎĵµ£º
ÕâÖ÷ÒªÓÃÓÚÑ¡ÔñÆ÷¹ýÂËÖØ¸´ÔªËØÊ±Óõġ£
Éæ¼°ÈýÖÖ¿ÉÄܵÄÊֶΣºsourceIndex£¬uniqueIDÓë×Ô¶¨ÒåµÄuuid¡£
sourceIndex »ñÈ¡ÔªËØ½ÚµãÔÚÒ³ÃæµÄ³öÏÖ˳Ðò£¬¼´ÎªÆäÔÚdocument.all¼¯ºÏÖеÄË÷ÒýºÅ¡£ÓÉÓÚҪ׼ȷ»ñÈ¡ÏȺóλÖã¬Èç¹ûÔÚÆäÇ°Ãæ²åÈëÒ»¸öÔªËØ½Úµã£¬ÄÇôËüµÄλÖþÍÒª¼ÓÒ»¡£»»ÑÔÖ®£¬ËüÊǶ¯Ì¬·ÖÅäµÄ£¬Ã¿´Î¶¼ÒªÖظ´¼ÆËã¡£×¢Ò⣬I ......
µÚ3ÕÂ
¶ÔÏó
JavaScript
µÄ¼òµ¥ÀàÐͰüÀ¨
Êý×Ö¡¢×Ö·û´®¡¢²¼¶ûÖµ£¨
true
ºÍ
false
£©¡¢
null
ÖµºÍ
undefined
Öµ¡£ÆäËûËùÓеÄÖµ¶¼ÊǶÔÏó¡£Êý×Ö¡¢×Ö·û´®ºÍ²¼¶ûÖµ“Ã²ËÆ”¶ÔÏó£¬ÒòΪËüÃÇÓµÓз½·¨£¬µ«ËüÃÇÊDz»¿É±ä
µÄ¡£
JavaScript
ÖеĶÔÏóÊǿɱäµÄ¼ü
-
Öµ¼¯ºÏ
(keyed
collections)
¡£ÔÚ ......
http://blog.csdn.net/mouyong/archive/2009/12/07/4959827.aspx
4.9 ×÷ÓÃÓò
ÔÚ±à³ÌÓïÑÔÖУ¬×÷ÓÃÓò¿ØÖÆ×űäÁ¿Óë²ÎÊýµÄ¿É¼ûÐÔ¼°ÉúÃüÖÜÆÚ¡£¶Ô³ÌÐòÔ±À´ËµÕâÊÇÒ»¸öÖØÒªµÄ°ïÖú£¬ÒòΪËü¼õÉÙÁËÃû³Æ³åÍ»£¬²¢ÇÒÌṩÁË×Ô¶¯ÄÚ´æ¹ÜÀí¡£
´ó¶àÊýʹÓÃCÓïÑÔÓï·¨µÄÓïÑÔ¶¼ÓµÓп鼶×÷ÓÃÓò¡£ÔÚÒ»¸ö´úÂë¿éÖУ¨À¨ÔÚÒ»¶Ô»¨À¨ºÅ ......
ÔÎÄÁ´½Ó£ºJavaScript: Its Not Just for Browsers Any More
Node.jsÊÇÒ»Ì×ÓÃÀ´±àд¸ßÐÔÄÜÍøÂç·þÎñÆ÷µÄJavaScript¹¤¾ß°ü£¬Ò»ÏµÁеı仯ÓÉ´Ë¿ªÊ¼¡£
Ò²ÐíÄ㻹²»ÖªµÀ£¬JavaScriptÏÖÔÚÒѾ³ÉÁËÒ»Ãſɱàд³öЧÂʼ«¸ßµÄ¡¢¿ÉÓÃÓÚ¿ª·¢²úÆ·¼¶web·þÎñÆ÷µÄ³öÉ«ÓïÑÔ¡£Æð³õÎÒÒ²²»ÏàÐÅ£¬µ«2009 ÄêÆô¶¯µÄÁ½¸öÏîÄ¿ÈÃÕâ³ÉΪ¿ÉÄÜ£ºCommonJSº ......