Baseline Widely available
parseInt(string, radix) è§£æä¸ä¸ªå符串并è¿åæå®åºæ°çåè¿å¶æ´æ°ï¼radix
æ¯ 2-36 ä¹é´çæ´æ°ï¼è¡¨ç¤ºè¢«è§£æå符串çåºæ°ã
console.log(parseInt("123"));
// 123 (default base-10)
console.log(parseInt("123", 10));
// 123 (explicitly specify base-10)
console.log(parseInt(" 123 "));
// 123 (whitespace is ignored)
console.log(parseInt("077"));
// 77 (leading zeros are ignored)
console.log(parseInt("1.9"));
// 1 (decimal part is truncated)
console.log(parseInt("ff", 16));
// 255 (lower-case hexadecimal)
console.log(parseInt("0xFF", 16));
// 255 (upper-case hexadecimal with "0x" prefix)
console.log(parseInt("xyz"));
// NaN (input can't be converted to an integer)
è¯æ³ åæ°
string
è¦è¢«è§£æçå¼ã妿忰䏿¯ä¸ä¸ªå符串ï¼åå°å
¶è½¬æ¢ä¸ºå符串 (ä½¿ç¨ ToString
æ½è±¡æä½)ãå符串å¼å¤´ç空ç½ç¬¦å°ä¼è¢«å¿½ç¥ã
radix
_ å¯é_
ä» 2
å° 36
çæ´æ°ï¼è¡¨ç¤ºè¿å¶çåºæ°ãä¾å¦æå® 16
表示被解æå¼æ¯åå
è¿å¶æ°ã妿è¶
åºè¿ä¸ªèå´ï¼å°è¿å NaN
ãåå¦æå® 0
ææªæå®ï¼åºæ°å°ä¼æ ¹æ®å符串çå¼è¿è¡æ¨ç®ã注æï¼æ¨ç®çç»æä¸ä¼æ°¸è¿æ¯é»è®¤å¼ 10
ï¼æç« åé¢çæè¿°è§£éäºå½åæ° radix
ä¸ä¼ æ¶è¯¥å½æ°çå
·ä½è¡ä¸ºã
ä»ç»å®çå符串ä¸è§£æåºçä¸ä¸ªæ´æ°ã
æè
NaN
ï¼å½
radix
å°äº 2
æå¤§äº 36
ï¼æparseInt('123', 5) // å°'123'çä½ 5 è¿å¶æ°ï¼è¿ååè¿å¶æ° 38 => 1*5^2 + 2*5^1 + 3*5^0 = 38æè¿°
parseInt
彿°å°å
¶ç¬¬ä¸ä¸ªåæ°è½¬æ¢ä¸ºä¸ä¸ªå符串ï¼å¯¹è¯¥å符串è¿è¡è§£æï¼ç¶åè¿åä¸ä¸ªæ´æ°æ NaN
ã
妿䏿¯ NaN
ï¼è¿åå¼å°æ¯ä»¥ç¬¬ä¸ä¸ªåæ°ä½ä¸ºæå®åºæ° radix ç转æ¢åçåè¿å¶æ´æ°ã(ä¾å¦ï¼radix
为 10
ï¼å°±æ¯å¯ä»¥è½¬æ¢åè¿å¶æ°ï¼ä¸º 8
å¯ä»¥è½¬æ¢å
«è¿å¶æ° "07"ï¼16
å¯ä»¥è½¬æ¢åå
è¿å¶æ°"0xff"ï¼ä»¥æ¤ç±»æ¨)ã
å¯¹äº radix
为 10
以ä¸çï¼è±æåæ¯è¡¨ç¤ºå¤§äº 9
çæ°åãä¾å¦ï¼å¯¹äºåå
è¿å¶æ°ï¼åºæ° 16
ï¼ï¼åä½¿ç¨ A
å° F
ã
妿 parseInt
éå°çåç¬¦ä¸æ¯æå® radix
åæ°ä¸çæ°åï¼å®å°å¿½ç¥è¯¥åç¬¦ä»¥åææåç»å符ï¼å¹¶è¿åå°è¯¥ç¹ä¸ºæ¢å·²è§£æçæ´æ°å¼ãparseInt
å°æ°åæªæä¸ºæ´æ°å¼ãå
许å导åå°¾éç©ºæ ¼ã
ç±äºæäºæ°åå¨å
¶å符串表示形å¼ä¸ä½¿ç¨ e å符ï¼ä¾å¦ 6.022Ã23
表示 6.022e23
ï¼ï¼å æ¤å½å¯¹é常大æé常å°çæ°åä½¿ç¨æ°åæ¶ï¼ä½¿ç¨ parseInt
æªææ°åå°äº§çæå¤ç»æãparseInt
ä¸åºæ¿ä»£ Math.floor()
ã
parseInt
å¯ä»¥ç解两个符å·ã+
è¡¨ç¤ºæ£æ°ï¼-
è¡¨ç¤ºè´æ°ï¼ä» ECMAScript 1 å¼å§ï¼ã宿¯å¨å»æç©ºæ ¼åä½ä¸ºè§£æçåå§æ¥éª¤è¿è¡çãå¦ææ²¡ææ¾å°ç¬¦å·ï¼ç®æ³å°è¿å
¥ä¸ä¸æ¥ï¼å¦åï¼å®å°å é¤ç¬¦å·ï¼å¹¶å¯¹å符串çå
¶ä½é¨åè¿è¡æ°åè§£æã
妿 radix
æ¯ undefined
ã0
ææªæå®çï¼JavaScript ä¼åå®ä»¥ä¸æ
åµï¼
string
以 0x
æ 0X
ï¼ä¸ä¸ª 0ï¼å颿¯å°åæå¤§åç Xï¼å¼å¤´ï¼é£ä¹ radix 被åå®ä¸º 16ï¼å符串çå
¶ä½é¨å被å½ååå
è¿å¶æ°å»è§£æãstring
以 "0
"ï¼0ï¼å¼å¤´ï¼radix
被åå®ä¸º 8
ï¼å
«è¿å¶ï¼æ 10
ï¼åè¿å¶ï¼ãå
·ä½éæ©åªä¸ä¸ª radix åå³äºå®ç°ãECMAScript 5 æ¾æ¸
äºåºè¯¥ä½¿ç¨ 10 (åè¿å¶)ï¼ä½ä¸æ¯ææçæµè§å¨é½æ¯æãå æ¤ï¼å¨ä½¿ç¨ parseInt
æ¶ï¼ä¸å®è¦æå®ä¸ä¸ª radixãstring
以任ä½å
¶ä»å¼å¼å¤´ï¼radix
æ¯ 10
(åè¿å¶)ãå¦æç¬¬ä¸ä¸ªå符ä¸è½è½¬æ¢ä¸ºæ°åï¼parseInt
ä¼è¿å NaN
ã
为äºç®æ¯çç®çï¼NaN
å¼ä¸è½ä½ä¸ºä»»ä½ radix
çæ°åãä½ å¯ä»¥è°ç¨ isNaN
彿°æ¥ç¡®å® parseInt
çç»ææ¯å¦ä¸º NaN
ãå¦æå° NaN ä¼ éç»ç®æ¯è¿ç®ï¼åè¿ç®ç»æä¹å°æ¯ NaN
ã
è¦å°ä¸ä¸ªæ°å转æ¢ä¸ºç¹å®ç radix
ä¸çåç¬¦ä¸²åæ®µï¼è¯·ä½¿ç¨ thatNumber.toString(radix)
彿°ã
è¦åï¼ BigInt
ãè¦åï¼parseInt
å° BigInt
转æ¢ä¸º Number
ï¼å¹¶å¨è¿ä¸ªè¿ç¨ä¸å¤±å»äºç²¾åº¦ãè¿æ¯å 为æå°¾çéæ°åå¼ï¼å
æ¬ "n"ï¼ä¼è¢«ä¸¢å¼ã
parseInt
以ä¸ä¾ååè¿å15
:
parseInt("0xF", 16);
parseInt("F", 16);
parseInt("17", 8);
parseInt(021, 8);
parseInt("015", 10);
parseInt(15.99, 10);
parseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15 * 3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);
以ä¸ä¾ååè¿å NaN
:
parseInt("Hello", 8); // æ ¹æ¬å°±ä¸æ¯æ°å¼
parseInt("546", 2); // é¤äºâ0ã1âå¤ï¼å
¶ä»æ°åé½ä¸æ¯ææäºè¿å¶æ°å
以ä¸ä¾ååè¿å -15
ï¼
parseInt("-F", 16);
parseInt("-0F", 16);
parseInt("-0XF", 16);
parseInt(-15.1, 10);
parseInt(" -17", 8);
parseInt(" -15", 10);
parseInt("-1111", 2);
parseInt("-15e1", 10);
parseInt("-12", 13);
ä¸ä¾ä¸å
¨é¨è¿å 4
:
parseInt(4.7, 10);
parseInt(4.7 * 1e22, 10); // éå¸¸å¤§çæ°å¼åæ 4
parseInt(0.00000000000434, 10); // é常å°çæ°å¼åæ 4
ä¸é¢çä¾åè¿å 224
radix
åæ°æ¶çå
«è¿å¶è§£æ
尽管 ECMAScript 3 å·²ç»ä¸èµæè¿ç§åæ³ï¼ä¸ ECMAScript 5 å·²ç»ç¦æ¢äºè¿ç§åæ³ï¼ä½æ¯ä»ç¶æå¾å¤å®ç°ç¯å¢ä»ç¶æä»¥ 0 å¼å¤´çæ°å¼å符串ï¼numeric stringï¼è§£é为ä¸ä¸ªå «è¿å¶æ°ãä¸é¢çä¾åå¯è½è¿åå «è¿å¶çç»æï¼ä¹å¯è½è¿ååè¿å¶çç»æãæ»æ¯æå®ä¸ä¸ªåºæ°ï¼radixï¼å¯ä»¥é¿å è¿ç§ä¸å¯é çè¡ä¸ºã
parseInt("0e0");
// 0
parseInt("08");
// 0, '8' 䏿¯å
«è¿å¶æ°åã
ECMAScript 5 ç§»é¤äºå
«è¿å¶è§£æ
ECMAScript 5 è§èä¸åå
许 parseInt
彿°çå®ç°ç¯å¢æä»¥ 0
å符å¼å§çå符串ä½ä¸ºå
«è¿å¶æ°å¼ãECMAScript 5 éè¿°å¦ä¸ï¼
æ ¹æ®ç»å® radixï¼parseInt
彿°äº§çä¸ä¸ªç±åç¬¦ä¸²åæ°å
容解æè¿æ¥çæ´æ°å¼ãå符串ä¸å¼å¤´ç空ç½ä¼è¢«å¿½ç¥ã妿 radix 没ææå®æè
为 0ï¼åæ°ä¼è¢«åå®ä»¥ 10 ä¸ºåºæ°æ¥è§£æï¼å¦ææ°å¼ä»¥å符对 0x æ 0X å¼å¤´ï¼ä¼åå®ä»¥ 16 ä¸ºåºæ°æ¥è§£æã
è¿ä¸ ECMAScript 3 ææä¸åï¼ECMAScript 3 ä» ä» æ¯ä¸æå¡è¿ç§åæ³ä½å¹¶æ²¡æç¦æ¢è¿ç§åæ³ã
ç´è³ 2013 å¹´ï¼å¾å¤å®ç°ç¯å¢å¹¶æ²¡æéåæ°çè§èæè§å®çåæ³ï¼èä¸ç±äºå¿ é¡»å ¼å®¹æ§ççæµè§å¨ï¼æä»¥æ°¸è¿é½è¦æç¡®ç»åº radix åæ°çå¼ã
ä¸ä¸ªæ´ä¸¥æ ¼çè§£æå½æ°ææ¶éç¨ä¸ä¸ªæ´ä¸¥æ ¼çæ¹æ³æ¥è§£ææ´åå¼å¾æç¨ãæ¤æ¶å¯ä»¥ä½¿ç¨æ£å表达å¼ï¼
filterInt = function (value) {
if (/^(\-|\+)?([0-9]+|Infinity)$/.test(value)) return Number(value);
return NaN;
};
console.log(filterInt("421")); // 421
console.log(filterInt("-421")); // -421
console.log(filterInt("+421")); // 421
console.log(filterInt("Infinity")); // Infinity
console.log(filterInt("421e+0")); // NaN
console.log(filterInt("421hop")); // NaN
console.log(filterInt("hop1.61803398875")); // NaN
console.log(filterInt("1.61803398875")); // NaN
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4