JavaScript Êý×Ö
JavaScript Ö»ÓÐÒ»ÖÖÊýÖµÀàÐÍ¡£
ÊéдÊýֵʱ´ø²»´øÐ¡Êýµã¾ù¿É¡£
JavaScript ÊýÖµ
Êéд JavaScript ÊýÖµ¼È¿ÉÒÔ´øÐ¡Êýµã£¬Ò²¿ÉÒÔ²»´ø£º
ʵÀý
var x = 3.14; // ´øÐ¡ÊýµãµÄÊýÖµ var y = 3; // ²»´øÐ¡ÊýµãµÄÊýÖµ
³¬´ó»ò³¬Ð¡µÄÊý¿Éͨ¹ý¿ÆÑ§¼ÆÊý·¨À´Ð´£º
ʵÀý
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript ÊýֵʼÖÕÊÇ 64 λµÄ¸¡µãÊý
ÓëÐí¶àÆäËû±à³ÌÓïÑÔ²»Í¬£¬JavaScript ²»»á¶¨Ò岻ͬÀàÐ͵ÄÊý£¬±ÈÈçÕûÊý¡¢¶ÌµÄ¡¢³¤µÄ¡¢¸¡µãµÄµÈµÈ¡£
JavaScript ÊýֵʼÖÕÒÔË«¾«¶È¸¡µãÊýÀ´´æ´¢£¬¸ù¾Ý¹ú¼Ê IEEE 754 ±ê×¼¡£
´Ë¸ñʽÓà 64 λ´æ´¢ÊýÖµ£¬ÆäÖÐ 0 µ½ 51 ´æ´¢Êý×Ö£¨Æ¬¶Î£©£¬52 µ½ 62 ´æ´¢Ö¸Êý£¬63 λ´æ´¢·ûºÅ£º
Öµ(aka Fraction/Mantissa) | Ö¸Êý | ·ûºÅ |
---|---|---|
52 bits(0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
¾«¶È
ÕûÊý£¨²»Ê¹ÓÃÖ¸Êý»ò¿ÆÑ§¼ÆÊý·¨£©»á±»¾«È·µ½ 15 λ¡£
ʵÀý
var x = 999999999999999; // x ½«ÊÇ 999999999999999 var y = 9999999999999999; // y ½«ÊÇ 10000000000000000
СÊýµÄ×î´óÊýÊÇ 17 룬µ«ÊǸ¡µãµÄËãÊý²¢²»×ÜÊÇ 100% ¾«×¼£º
ʵÀý
var x = 0.2 + 0.1; // x ½«ÊÇ 0.30000000000000004
ʹÓó˳ý·¨ÓÐÖúÓÚ½â¾öÉÏÃæµÄÎÊÌ⣺
ʵÀý
var x = (0.2 * 10 + 0.1 * 10) / 10; // x ½«ÊÇ 0.3
Êý×ÖºÍ×Ö·û´®Ïà¼Ó
¾¯¸æ£¡£¡
JavaScript µÄ¼Ó·¨ºÍ¼¶Áª£¨concatenation£©¶¼Ê¹Óà + ÔËËã·û¡£
Êý×ÖÓüӷ¨¡£×Ö·û´®Óü¶Áª¡£
Èç¹ûÄú¶ÔÁ½¸öÊýÏà¼Ó£¬½á¹û½«ÊÇÒ»¸öÊý£º
ʵÀý
var x = 10;
var y = 20;
var z = x + y; // z ½«ÊÇ 30£¨Ò»¸öÊý£©
Èç¹û¶ÔÁ½¸ö×Ö·û´®Ïà¼Ó£¬½á¹û½«ÊÇÒ»¸ö×Ö·û´®µÄ¼¶Áª£º
ʵÀý
var x = "10";
var y = "20";
var z = x + y; // z ½«ÊÇ 1020£¨×Ö·û´®£©
Èç¹ûÄú¶ÔÒ»¸öÊýºÍÒ»¸ö×Ö·û´®Ïà¼Ó£¬½á¹ûÒ²ÊÇ×Ö·û´®¼¶Áª£º
ʵÀý
var x = 10;
var y = "20";
var z = x + y; // z ½«ÊÇ 1020£¨Ò»¸ö×Ö·û´®£©
Èç¹ûÄú¶ÔÒ»¸ö×Ö·û´®ºÍÒ»¸öÊý×ÖÏà¼Ó£¬½á¹ûÒ²ÊÇ×Ö·û´®¼¶Áª£º
ʵÀý
var x = "10";
var y = 20;
var z = x + y; // z ½«ÊÇ 1020£¨×Ö·û´®£©
³£¼ûµÄ´íÎóÊÇÈÏΪ½á¹ûÓ¦¸ÃÊÇ 30£º
ʵÀý
var x = 10; var y = 20; var z = "The result is: " + x + y;
³£¼ûµÄ´íÎóÊÇÈÏΪ½á¹ûÓ¦¸ÃÊÇ 102030£º
ʵÀý
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript ´Ó×óÏòÓÒ½øÐбàÒë¡£
ÒòΪ x ºÍ y ¶¼ÊÇÊý£¬10 + 20 ½«±»Ïà¼Ó¡£
ÒòΪ z ÊÇ×Ö·û´®£¬30 + "30" ±»¼¶Áª¡£
Êý×Ö×Ö·û´®
JavaScript ×Ö·û´®¿ÉÒÔÓµÓÐÊý×ÖÄÚÈÝ£º
var x = 100; // x ÊÇÊý×Ö var y = "100"; // y ÊÇ×Ö·û´®
ÔÚËùÓÐÊý×ÖÔËËãÖУ¬JavaScript »á³¢ÊÔ½«×Ö·û´®×ª»»ÎªÊý×Ö£º
¸ÃÀýÈç´ËÔËÐУº
var x = "100";
var y = "10";
var z = x / y; // z ½«ÊÇ 10
¸ÃÀýÒ²½«Èç´ËÔËÐУº
var x = "100";
var y = "10";
var z = x * y; // z ½«ÊÇ 1000
¸ÃÀýÈç´ËÔËÐУº
var x = "100";
var y = "10";
var z = x - y; // z ½«ÊÇ 90
µ«ÊǸÃÀý²»»áÈçÉÏÀý°ãÔËÐУº
var x = "100";
var y = "10";
var z = x + y; // z ²»»áÊÇ 110£¨¶øÊÇ 10010£©
ÔÚ×îºóÒ»¸öÀý×ÓÖУ¬JavaScript Óà + ÔËËã·û¶Ô×Ö·û´®½øÐÐÁ˼¶Áª¡£
NaN - ·ÇÊýÖµ
NaN ÊôÓÚ JavaScript ±£Áô´Ê£¬Ö¸Ê¾Ä³¸öÊý²»ÊǺϷ¨Êý¡£
³¢ÊÔÓÃÒ»¸ö·ÇÊý×Ö×Ö·û´®½øÐгý·¨»áµÃµ½ NaN£¨Not a Number£©£º
ʵÀý
var x = 100 / "Apple"; // x ½«ÊÇ NaN£¨Not a Number£©
²»¹ý£¬¼ÙÈç×Ö·û´®°üº¬ÊýÖµ£¬Ôò½á¹û½«ÊÇÊý£º
ʵÀý
var x = 100 / "10"; // x ½«ÊÇ 10
Äú¿ÉʹÓÃÈ«¾Ö JavaScript º¯Êý isNaN() À´È·¶¨Ä³¸öÖµÊÇ·ñÊÇÊý£º
ʵÀý
var x = 100 / "Apple";
isNaN(x); // ·µ»Ø true£¬ÒòΪ x ²»ÊÇÊý
ҪСÐÄ NaN¡£¼ÙÈçÄúÔÚÊýѧÔËËãÖÐʹÓÃÁË NaN£¬Ôò½á¹ûÒ²½«ÊÇ NaN£º
ʵÀý
var x = NaN;
var y = 5;
var z = x + y; // z ½«ÊÇ NaN
½á¹ûÒ²ÐíÊÇ´®Á¬½Ó£º
ʵÀý
var x = NaN;
var y = "5";
var z = x + y; // z ½«ÊÇ NaN5
NaN ÊÇÊý£¬typeof NaN ·µ»Ø number£º
ʵÀý
typeof NaN; // ·µ»Ø "number"
Infinity
Infinity £¨»ò -Infinity£©ÊÇ JavaScript ÔÚ¼ÆËãÊýʱ³¬³ö×î´ó¿ÉÄÜÊý·¶Î§Ê±·µ»ØµÄÖµ¡£
ʵÀý
var myNumber = 2;
while (myNumber != Infinity) { // Ö´ÐÐÖ±µ½ Infinity
myNumber = myNumber * myNumber;
}
³ýÒÔ 0£¨Á㣩Ҳ»áÉú³É Infinity£º
ʵÀý
var x = 2 / 0; // x ½«ÊÇ Infinity var y = -2 / 0; // y ½«ÊÇ -Infinity
Infinity ÊÇÊý£ºtypeOf Infinity ·µ»Ø number¡£
ʵÀý
typeof Infinity; // ·µ»Ø "number"
Ê®Áù½øÖÆ
JavaScript »á°Ñǰ׺Ϊ 0x µÄÊýÖµ³£Á¿½âÊÍΪʮÁù½øÖÆ¡£
ʵÀý
var x = 0xFF; // x ½«ÊÇ 255
¾ø²»ÒªÓÃǰµ¼ÁãдÊý×Ö£¨±ÈÈç 07£©¡£
һЩ JavaScript °æ±¾»á°Ñ´øÓÐǰµ¼ÁãµÄÊý½âÊÍΪ°Ë½øÖÆ¡£
ĬÈϵأ¬Javascript °ÑÊýÏÔʾΪʮ½øÖÆÐ¡Êý¡£
µ«ÊÇÄúÄܹ»Ê¹Óà toString() ·½·¨°ÑÊýÊä³öΪʮÁù½øÖÆ¡¢°Ë½øÖÆ»ò¶þ½øÖÆ¡£
ʵÀý
var myNumber = 128; myNumber.toString(16); // ·µ»Ø 80 myNumber.toString(8); // ·µ»Ø 200 myNumber.toString(2); // ·µ»Ø 10000000
ÊýÖµ¿ÉÒÔÊǶÔÏó
ͨ³£ JavaScript ÊýÖµÊÇͨ¹ý×ÖÃæÁ¿´´½¨µÄÔʼֵ£ºvar x = 123
µ«ÊÇÒ²¿ÉÒÔͨ¹ý¹Ø¼ü´Ê new ¶¨ÒåΪ¶ÔÏó£ºvar y = new Number(123)
ʵÀý
var x = 123; var y = new Number(123); // typeof x ·µ»Ø number // typeof y ·µ»Ø object
Çë²»Òª´´½¨ÊýÖµ¶ÔÏó¡£ÕâÑù»áÍÏÂýÖ´ÐÐËÙ¶È¡£
new ¹Ø¼ü´Êʹ´úÂ븴ÔÓ»¯£¬²¢²úÉúijЩÎÞ·¨Ô¤ÁϵĽá¹û£º
µ±Ê¹Óà == ÏàµÈÔËËã·ûʱ£¬ÏàµÈµÄÊý¿´ÉÏÈ¥ÏàµÈ£º
ʵÀý
var x = 500;
var y = new Number(500);
// (x == y) Ϊ true£¬ÒòΪ x ºÍ y ÓÐÏàµÈµÄÖµ
µ±Ê¹Óà === ÏàµÈÔËËã·ûºó£¬ÏàµÈµÄÊý±äΪ²»ÏàµÈ£¬ÒòΪ === ÔËËã·ûÐèÒªÀàÐͺÍֵͬʱÏàµÈ¡£
ʵÀý
var x = 500;
var y = new Number(500);
// (x === y) Ϊ false£¬ÒòΪ x ºÍ y µÄÀàÐͲ»Í¬
ÉõÖÁ¸üÔã¡£¶ÔÏóÎÞ·¨½øÐжԱȣº
ʵÀý
var x = new Number(500);
var y = new Number(500);
// (x == y) Ϊ false£¬ÒòΪ¶ÔÏóÎÞ·¨±È½Ï
JavaScript ¶ÔÏóÎÞ·¨½øÐбȽϡ£