ECMAScript ÔʼÀàÐÍ
ECMAScript ÓÐ 5 ÖÖÔʼÀàÐÍ£¨primitive type£©£¬¼´ Undefined¡¢Null¡¢Boolean¡¢Number ºÍ String¡£
typeof ÔËËã·û
typeof ÔËËã·ûÓÐÒ»¸ö²ÎÊý£¬¼´Òª¼ì²éµÄ±äÁ¿»òÖµ¡£ÀýÈ磺
var sTemp = "test string"; alert (typeof sTemp); //Êä³ö "string" alert (typeof 86); //Êä³ö "number"
¶Ô±äÁ¿»òÖµµ÷Óà typeof ÔËËã·û½«·µ»ØÏÂÁÐÖµÖ®Ò»£º
- undefined - Èç¹û±äÁ¿ÊÇ Undefined ÀàÐ͵Ä
- boolean - Èç¹û±äÁ¿ÊÇ Boolean ÀàÐ͵Ä
- number - Èç¹û±äÁ¿ÊÇ Number ÀàÐ͵Ä
- string - Èç¹û±äÁ¿ÊÇ String ÀàÐ͵Ä
- object - Èç¹û±äÁ¿ÊÇÒ»ÖÖÒýÓÃÀàÐÍ»ò Null ÀàÐ͵Ä
×¢ÊÍ£ºÄúÒ²Ðí»áÎÊ£¬ÎªÊ²Ã´ typeof ÔËËã·û¶ÔÓÚ null Öµ»á·µ»Ø "Object"¡£Õâʵ¼ÊÉÏÊÇ JavaScript ×î³õʵÏÖÖеÄÒ»¸ö´íÎó£¬È»ºó±» ECMAScript ÑØÓÃÁË¡£ÏÖÔÚ£¬null ±»ÈÏΪÊǶÔÏóµÄռλ·û£¬´Ó¶ø½âÊÍÁËÕâһì¶Ü£¬µ«´Ó¼¼ÊõÉÏÀ´Ëµ£¬ËüÈÔÈ»ÊÇÔʼֵ¡£
Undefined ÀàÐÍ
ÈçǰËùÊö£¬Undefined ÀàÐÍÖ»ÓÐÒ»¸öÖµ£¬¼´ undefined¡£µ±ÉùÃ÷µÄ±äÁ¿Î´³õʼ»¯Ê±£¬¸Ã±äÁ¿µÄĬÈÏÖµÊÇ undefined¡£
var oTemp;
Ç°ÃæÒ»ÐдúÂëÉùÃ÷±äÁ¿ oTemp£¬Ã»Óгõʼֵ¡£¸Ã±äÁ¿½«±»¸³ÓèÖµ undefined£¬¼´ undefined ÀàÐ͵Ä×ÖÃæÁ¿¡£¿ÉÒÔÓÃÏÂÃæµÄ´úÂë¶Î²âÊԸñäÁ¿µÄÖµÊÇ·ñµÈÓÚ undefined£º
var oTemp; alert(oTemp == undefined);
Õâ¶Î´úÂ뽫ÏÔʾ "true"£¬ËµÃ÷ÕâÁ½¸öֵȷʵÏàµÈ¡£»¹¿ÉÒÔÓà typeof ÔËËã·ûÏÔʾ¸Ã±äÁ¿µÄÖµÊÇ undefined£º
var oTemp;
alert(typeof oTemp); //Êä³ö "undefined"
Ìáʾ£ºÖµ undefined ²¢²»Í¬ÓÚ䶨ÒåµÄÖµ¡£µ«ÊÇ£¬typeof ÔËËã·û²¢²»ÕæÕýÇø·ÖÕâÁ½ÖÖÖµ¡£¿¼ÂÇÏÂÃæµÄ´úÂ룺
var oTemp; alert(typeof oTemp); //Êä³ö "undefined" alert(typeof oTemp2); //Êä³ö "undefined"
Ç°ÃæµÄ´úÂë¶ÔÁ½¸ö±äÁ¿Êä³öµÄ¶¼ÊÇ "undefined"£¬¼´Ê¹Ö»ÓбäÁ¿ oTemp2 ´Óδ±»ÉùÃ÷¹ý¡£Èç¹û¶Ô oTemp2 ʹÓóý typeof Ö®ÍâµÄÆäËûÔËËã·ûµÄ»°£¬»áÒýÆð´íÎó£¬ÒòΪÆäËûÔËËã·ûÖ»ÄÜÓÃÓÚÒÑÉùÃ÷µÄ±äÁ¿ÉÏ¡£
ÀýÈ磬ÏÂÃæµÄ´úÂ뽫Òý·¢´íÎó£º
var oTemp; alert(oTemp2 == undefined);
µ±º¯ÊýÎÞÃ÷È··µ»ØÖµÊ±£¬·µ»ØµÄÒ²ÊÇÖµ "undefined"£¬ÈçÏÂËùʾ£º
function testFunc() {
}
alert(testFunc() == undefined); //Êä³ö "true"
Null ÀàÐÍ
ÁíÒ»ÖÖÖ»ÓÐÒ»¸öÖµµÄÀàÐÍÊÇ Null£¬ËüÖ»ÓÐÒ»¸öרÓÃÖµ null£¬¼´ËüµÄ×ÖÃæÁ¿¡£Öµ undefined ʵ¼ÊÉÏÊÇ´ÓÖµ null ÅÉÉúÀ´µÄ£¬Òò´Ë ECMAScript °ÑËüÃǶ¨ÒåΪÏàµÈµÄ¡£
alert(null == undefined); //Êä³ö "true"
¾¡¹ÜÕâÁ½¸öÖµÏàµÈ£¬µ«ËüÃǵĺ¬Ò岻ͬ¡£undefined ÊÇÉùÃ÷Á˱äÁ¿µ«Î´¶ÔÆä³õʼ»¯Ê±¸³Óè¸Ã±äÁ¿µÄÖµ£¬null ÔòÓÃÓÚ±íʾÉÐδ´æÔڵĶÔÏó£¨ÔÚÌÖÂÛ typeof ÔËËã·ûʱ£¬¼òµ¥µØ½éÉܹýÕâÒ»µã£©¡£Èç¹ûº¯Êý»ò·½·¨Òª·µ»ØµÄÊǶÔÏó£¬ÄÇôÕÒ²»µ½¸Ã¶ÔÏóʱ£¬·µ»ØµÄͨ³£ÊÇ null¡£
Boolean ÀàÐÍ
Boolean ÀàÐÍÊÇ ECMAScript ÖÐ×î³£ÓõÄÀàÐÍÖ®Ò»¡£ËüÓÐÁ½¸öÖµ true ºÍ false £¨¼´Á½¸ö Boolean ×ÖÃæÁ¿£©¡£
¼´Ê¹ false ²»µÈÓÚ 0£¬0 Ò²¿ÉÒÔÔÚ±ØÒªÊ±±»×ª»»³É false£¬ÕâÑùÔÚ Boolean Óï¾äÖÐʹÓÃÁ½Õß¶¼Êǰ²È«µÄ¡£
var bFound = true; var bLost = false;
Number ÀàÐÍ
ECMA-262 Öж¨ÒåµÄ×îÌØÊâµÄÀàÐÍÊÇ Number ÀàÐÍ¡£ÕâÖÖÀàÐͼȿÉÒÔ±íʾ 32 λµÄÕûÊý£¬»¹¿ÉÒÔ±íʾ 64 λµÄ¸¡µãÊý¡£
Ö±½ÓÊäÈëµÄ£¨¶ø²»ÊÇ´ÓÁíÒ»¸ö±äÁ¿·ÃÎʵģ©ÈκÎÊý×Ö¶¼±»¿´×ö Number ÀàÐ͵Ä×ÖÃæÁ¿¡£ÀýÈ磬ÏÂÃæµÄ´úÂëÉùÃ÷ÁË´æ·ÅÕûÊýÖµµÄ±äÁ¿£¬ËüµÄÖµÓÉ×ÖÃæÁ¿ 86 ¶¨Ò壺
var iNum = 86;
°Ë½øÖÆÊýºÍÊ®Áù½øÖÆÊý
ÕûÊýÒ²¿ÉÒÔ±»±íʾΪ°Ë½øÖÆ£¨ÒÔ 8 Ϊµ×£©»òÊ®Áù½øÖÆ£¨ÒÔ 16 Ϊµ×£©µÄ×ÖÃæÁ¿¡£°Ë½øÖÆ×ÖÃæÁ¿µÄÊ×Êý×Ö±ØÐëÊÇ 0£¬ÆäºóµÄÊý×Ö¿ÉÒÔÊÇÈκΰ˽øÖÆÊý×Ö£¨0-7£©£¬ÈçÏÂÃæµÄ´úÂëËùʾ£º
var iNum = 070; //070 µÈÓÚÊ®½øÖÆµÄ 56
Òª´´½¨Ê®Áù½øÖƵÄ×ÖÃæÁ¿£¬Ê×λÊý×Ö±ØÐëΪ 0£¬ºóÃæ½Ó×Öĸ x£¬È»ºóÊÇÈÎÒâµÄÊ®Áù½øÖÆÊý×Ö£¨0 µ½ 9 ºÍ A µ½ F£©¡£ÕâЩ×Öĸ¿ÉÒÔÊÇ´óдµÄ£¬Ò²¿ÉÒÔÊÇСдµÄ¡£ÀýÈ磺
var iNum = 0x1f; //0x1f µÈÓÚÊ®½øÖÆµÄ 31 var iNum = 0xAB; //0xAB µÈÓÚÊ®½øÖÆµÄ 171
Ìáʾ£º¾¡¹ÜËùÓÐÕûÊý¶¼¿ÉÒÔ±íʾΪ°Ë½øÖÆ»òÊ®Áù½øÖƵÄ×ÖÃæÁ¿£¬µ«ËùÓÐÊýѧÔËËã·µ»ØµÄ¶¼ÊÇÊ®½øÖƽá¹û¡£
¸¡µãÊý
Òª¶¨Ò帡µãÖµ£¬±ØÐë°üÀ¨Ð¡ÊýµãºÍСÊýµãºóµÄһλÊý×Ö£¨ÀýÈ磬Óà 1.0 ¶ø²»ÊÇ 1£©¡£Õâ±»¿´×÷¸¡µãÊý×ÖÃæÁ¿¡£ÀýÈ磺
var fNum = 5.0;
¶ÔÓÚ¸¡µã×ÖÃæÁ¿µÄÓÐȤ֮´¦ÔÚÓÚ£¬ÓÃËü½øÐмÆËãǰ£¬ÕæÕý´æ´¢µÄÊÇ×Ö·û´®¡£
¿ÆÑ§¼ÆÊý·¨
¶ÔÓڷdz£´ó»ò·Ç³£Ð¡µÄÊý£¬¿ÉÒÔÓÿÆÑ§¼ÆÊý·¨±íʾ¸¡µãÊý£¬¿ÉÒÔ°ÑÒ»¸öÊý±íʾΪÊý×Ö£¨°üÀ¨Ê®½øÖÆÊý×Ö£©¼Ó e£¨»ò E£©£¬ºóÃæ¼Ó³ËÒÔ 10 µÄ±¶Êý¡£ÀýÈ磺
var fNum = 5.618e7
¸Ã·ûºÅ±íʾµÄÊÇÊý 56180000¡£°Ñ¿ÆÑ§¼ÆÊý·¨×ª»¯³É¼ÆËãʽ¾Í¿ÉÒԵõ½¸ÃÖµ£º5.618 x 107¡£
Ò²¿ÉÒÔÓÿÆÑ§¼ÆÊý·¨±íʾ·Ç³£Ð¡µÄÊý£¬ÀýÈç 0.00000000000000008 ¿ÉÒÔ±íʾΪ 8-e17£¨ÕâÀ10 ±»Éýµ½ -17 ´ÎÚ¤£¬Òâζ×ÅÐèÒª±» 10 ³ý 17 ´Î£©¡£ECMAScript ĬÈϰѾßÓÐ 6 ¸ö»ò 6 ¸öÒÔÉÏǰµ¼ 0 µÄ¸¡µãÊýת»»³É¿ÆÑ§¼ÆÊý·¨¡£
Ìáʾ£ºÒ²¿ÉÓà 64 λ IEEE 754 ÐÎʽ´æ´¢¸¡µãÖµ£¬ÕâÒâζ×ÅÊ®½øÖÆÖµ×î¶à¿ÉÒÔÓÐ 17 ¸öÊ®½øÖÆÎ»¡£17 λ֮ºóµÄÖµ½«±»²ÃÈ¥£¬´Ó¶øÔì³ÉһЩСµÄÊýѧÎó²î¡£
ÌØÊâµÄ Number Öµ
¼¸¸öÌØÊâÖµÒ²±»¶¨ÒåΪ Number ÀàÐÍ¡£Ç°Á½¸öÊÇ Number.MAX_VALUE ºÍ Number.MIN_VALUE£¬ËüÃǶ¨ÒåÁË Number Öµ¼¯ºÏµÄÍâ±ß½ç¡£ËùÓÐ ECMAScript Êý¶¼±ØÐëÔÚÕâÁ½¸öÖµÖ®¼ä¡£²»¹ý¼ÆËãÉú³ÉµÄÊýÖµ½á¹û¿ÉÒÔ²»ÂäÔÚÕâÁ½¸öÖµÖ®¼ä¡£
µ±¼ÆËãÉú³ÉµÄÊý´óÓÚ Number.MAX_VALUE ʱ£¬Ëü½«±»¸³ÓèÖµ Number.POSITIVE_INFINITY£¬Òâζ×Ų»ÔÙÓÐÊý×ÖÖµ¡£Í¬Ñù£¬Éú³ÉµÄÊýֵСÓÚ Number.MIN_VALUE µÄ¼ÆËãÒ²»á±»¸³ÓèÖµ Number.NEGATIVE_INFINITY£¬Ò²Òâζ×Ų»ÔÙÓÐÊý×ÖÖµ¡£Èç¹û¼ÆËã·µ»ØµÄÊÇÎÞÇî´óÖµ£¬ÄÇôÉú³ÉµÄ½á¹û²»ÄÜÔÙÓÃÓÚÆäËû¼ÆËã¡£
ÊÂʵÉÏ£¬ÓÐרÃŵÄÖµ±íʾÎÞÇî´ó£¬£¨ÈçÄã²Âµ½µÄ£©¼´ Infinity¡£Number.POSITIVE_INFINITY µÄֵΪ Infinity¡£Number.NEGATIVE_INFINITY µÄֵΪ -Infinity¡£
ÓÉÓÚÎÞÇî´óÊý¿ÉÒÔÊÇÕýÊýÒ²¿ÉÒÔÊǸºÊý£¬ËùÒÔ¿ÉÓÃÒ»¸ö·½·¨ÅжÏÒ»¸öÊýÊÇ·ñÊÇÓÐÇîµÄ£¨¶ø²»Êǵ¥¶À²âÊÔÿ¸öÎÞÇîÊý£©¡£¿ÉÒÔ¶ÔÈκÎÊýµ÷Óà isFinite() ·½·¨£¬ÒÔÈ·±£¸ÃÊý²»ÊÇÎÞÇî´ó¡£ÀýÈ磺
var iResult = iNum * some_really_large_number;
if (isFinite(iResult))
{
alert("finite");
}
else {
alert("infinite");
}
×îºóÒ»¸öÌØÊâÖµÊÇ NaN£¬±íʾ·ÇÊý£¨Not a Number£©¡£NaN ÊǸöÆæ¹ÖµÄÌØÊâÖµ¡£Ò»°ã˵À´£¬ÕâÖÖÇé¿ö·¢ÉúÔÚÀàÐÍ£¨String¡¢Boolean µÈ£©×ª»»Ê§°Üʱ¡£ÀýÈ磬Ҫ°Ñµ¥´Ê blue ת»»³ÉÊýÖµ¾Í»áʧ°Ü£¬ÒòΪûÓÐÓëÖ®µÈ¼ÛµÄÊýÖµ¡£ÓëÎÞÇî´óÒ»Ñù£¬NaN Ò²²»ÄÜÓÃÓÚËãÊõ¼ÆËã¡£NaN µÄÁíÒ»¸öÆæÌØÖ®´¦ÔÚÓÚ£¬ËüÓë×ÔÉí²»ÏàµÈ£¬ÕâÒâζ×ÅÏÂÃæµÄ´úÂ뽫·µ»Ø false£º
alert(NaN == NaN); //Êä³ö "false"
³öÓÚÕâ¸öÔÒò£¬²»ÍƼöʹÓà NaN Öµ±¾Éí¡£º¯Êý isNaN() »á×öµÃÏ൱ºÃ£º
alert(isNaN("blue")); //Êä³ö "true" alert(isNaN("666")); //Êä³ö "false"
String ÀàÐÍ
String ÀàÐ͵ĶÀÌØÖ®´¦ÔÚÓÚ£¬ËüÊÇΨһûÓй̶¨´óСµÄÔʼÀàÐÍ¡£¿ÉÒÔÓÃ×Ö·û´®´æ´¢ 0 »ò¸ü¶àµÄ Unicode ×Ö·û£¬ÓÐ 16 λÕûÊý±íʾ£¨Unicode ÊÇÒ»ÖÖ¹ú¼Ê×Ö·û¼¯£¬±¾½Ì³ÌºóÃæ½«ÌÖÂÛËü£©¡£
×Ö·û´®ÖÐÿ¸ö×Ö·û¶¼ÓÐÌØ¶¨µÄλÖã¬Ê××Ö·û´ÓλÖà 0 ¿ªÊ¼£¬µÚ¶þ¸ö×Ö·ûÔÚλÖà 1£¬ÒÀ´ËÀàÍÆ¡£ÕâÒâζ×Å×Ö·û´®ÖеÄ×îºóÒ»¸ö×Ö·ûµÄλÖÃÒ»¶¨ÊÇ×Ö·û´®µÄ³¤¶È¼õ 1£º

×Ö·û´®×ÖÃæÁ¿ÊÇÓÉË«ÒýºÅ£¨"£©»òµ¥ÒýºÅ£¨'£©ÉùÃ÷µÄ¡£¶ø Java ÔòÊÇÓÃË«ÒýºÅÉùÃ÷×Ö·û´®£¬Óõ¥ÒýºÅÉùÃ÷×Ö·û¡£µ«ÊÇÓÉÓÚ ECMAScript ûÓÐ×Ö·ûÀàÐÍ£¬ËùÒÔ¿ÉʹÓÃÕâÁ½ÖÖ±íʾ·¨ÖеÄÈκÎÒ»ÖÖ¡£ÀýÈ磬ÏÂÃæµÄÁ½ÐдúÂë¶¼ÓÐЧ£º
var sColor1 = "red"; var sColor2 = 'red';
String ÀàÐÍ»¹°üÀ¨¼¸ÖÖ×Ö·û×ÖÃæÁ¿£¬Java¡¢C ºÍ Perl µÄ¿ª·¢ÕßÓ¦¸Ã¶Ô´Ë·Ç³£ÊìϤ¡£
ÏÂÃæÁгöÁË ECMAScript µÄ×Ö·û×ÖÃæÁ¿£º
×ÖÃæÁ¿ | º¬Òå |
---|---|
\n | »»ÐÐ |
\t | ÖÆ±í·û |
\b | ¿Õ¸ñ |
\r | »Ø³µ |
\f | »»Ò³·û |
\\ | ·´Ð±¸Ü |
\' | µ¥ÒýºÅ |
\" | Ë«ÒýºÅ |
\0nnn | °Ë½øÖÆ´úÂë nnn ±íʾµÄ×Ö·û£¨n ÊÇ 0 µ½ 7 ÖеÄÒ»¸ö°Ë½øÖÆÊý×Ö£© |
\xnn | Ê®Áù½øÖÆ´úÂë nn ±íʾµÄ×Ö·û£¨n ÊÇ 0 µ½ F ÖеÄÒ»¸öÊ®Áù½øÖÆÊý×Ö£© |
\unnnn | Ê®Áù½øÖÆ´úÂë nnnn ±íʾµÄ Unicode ×Ö·û£¨n ÊÇ 0 µ½ F ÖеÄÒ»¸öÊ®Áù½øÖÆÊý×Ö£© |