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 ÖеÄÒ»¸öÊ®Áù½øÖÆÊý×Ö£©
VUE