大夿°æ åµä¸ï¼è¿ç®ç¬¦å彿°ä¼èªå¨å°èµäºå®ä»¬çå¼è½¬æ¢ä¸ºæ£ç¡®çç±»åã
æ¯å¦ï¼alert ä¼èªå¨å°ä»»ä½å¼é½è½¬æ¢ä¸ºå符串以è¿è¡æ¾ç¤ºãç®æ¯è¿ç®ç¬¦ä¼å°å¼è½¬æ¢ä¸ºæ°åã
å¨æäºæ åµä¸ï¼æä»¬éè¦å°å¼æ¾å¼å°è½¬æ¢ä¸ºæä»¬ææçç±»åã
卿¬ç« ä¸ï¼æä»¬ä¸ä¼è®¨è®º object ç±»åãç®åï¼æä»¬å°åªå¦ä¹ åå§ç±»åã
ä¹åï¼å¨æä»¬å¦ä¹ å® object ç±»ååï¼æä»¬ä¼å¨ 对象 ââ åå§å¼è½¬æ¢ ä¸ç« ä¸å¦ä¹ 对象 â åå§å¼è½¬æ¢ã
å符串转æ¢
彿们éè¦ä¸ä¸ªå符串形å¼ç弿¶ï¼å°±ä¼è¿è¡å符串转æ¢ã
æ¯å¦ï¼alert(value) å° value 转æ¢ä¸ºå符串类åï¼ç¶åæ¾ç¤ºè¿ä¸ªå¼ã
æä»¬ä¹å¯ä»¥æ¾å¼å°è°ç¨ String(value) æ¥å° value 转æ¢ä¸ºå符串类åï¼
let value = true;
alert(typeof value); // boolean
value = String(value); // ç°å¨ï¼å¼æ¯ä¸ä¸ªå符串形å¼ç "true"
alert(typeof value); // string
åç¬¦ä¸²è½¬æ¢æææ¾ãfalse åæ "false"ï¼null åæ "null" çã
æ°åå转æ¢
å¨ç®æ¯å½æ°å表达å¼ä¸ï¼ä¼èªå¨è¿è¡ number ç±»å转æ¢ã
æ¯å¦ï¼å½æé¤æ³ / ç¨äºé number ç±»åï¼
alert( "6" / "2" ); // 3, string ç±»åçå¼è¢«èªå¨è½¬æ¢æ number ç±»ååè¿è¡è®¡ç®
æä»¬ä¹å¯ä»¥ä½¿ç¨ Number(value) æ¾å¼å°å°è¿ä¸ª value 转æ¢ä¸º number ç±»åã
let str = "123";
alert(typeof str); // string
let num = Number(str); // åæ number ç±»å 123
alert(typeof num); // number
å½æä»¬ä» string ç±»åæºï¼å¦ææ¬è¡¨åï¼ä¸è¯»åä¸ä¸ªå¼ï¼ä½ææè¾å ¥ä¸ä¸ªæ°åæ¶ï¼é常éè¦è¿è¡æ¾å¼è½¬æ¢ã
å¦æè¯¥åç¬¦ä¸²ä¸æ¯ä¸ä¸ªææçæ°åï¼è½¬æ¢çç»æä¼æ¯ NaNãä¾å¦ï¼
let age = Number("an arbitrary string instead of a number");
alert(age); // NaNï¼è½¬æ¢å¤±è´¥
number ç±»å转æ¢è§åï¼
| å¼ | åæâ¦â¦ |
|---|---|
undefined |
NaN |
null |
0 |
true å false |
1 and 0 |
string |
廿é¦å°¾ç©ºç½å符ï¼ç©ºæ ¼ãæ¢è¡ç¬¦ \nãå¶è¡¨ç¬¦ \t çï¼åç纯æ°åå符串ä¸å«æçæ°åã妿å©ä½å符串为空ï¼å转æ¢ç»æä¸º 0ãå¦åï¼å°ä¼ä»å©ä½å符串ä¸â读åâæ°åãå½ç±»å转æ¢åºç° error æ¶è¿å NaNã |
ä¾åï¼
alert( Number(" 123 ") ); // 123
alert( Number("123z") ); // NaNï¼ä»å符串â读åâæ°åï¼è¯»å° "z" æ¶åºç°é误ï¼
alert( Number(true) ); // 1
alert( Number(false) ); // 0
请注æ null å undefined å¨è¿æç¹ä¸åï¼null åææ°å 0ï¼undefined åæ NaNã
大夿°æ°å¦è¿ç®ç¬¦é½æ§è¡è¿ç§è½¬æ¢ï¼æä»¬å°å¨ä¸ä¸èä¸è¿è¡ä»ç»ã
å¸å°å转æ¢
å¸å°ï¼booleanï¼ç±»åè½¬æ¢æ¯æç®åçä¸ä¸ªã
å®åçå¨é»è¾è¿ç®ä¸ï¼ç¨åæä»¬å°è¿è¡æ¡ä»¶å¤æåå ¶ä»ç±»ä¼¼çä¸è¥¿ï¼ï¼ä½æ¯ä¹å¯ä»¥éè¿è°ç¨ Boolean(value) æ¾å¼å°è¿è¡è½¬æ¢ã
转æ¢è§åå¦ä¸ï¼
- ç´è§ä¸ä¸ºâ空âçå¼ï¼å¦
0ã空å符串ãnullãundefinedåNaNï¼å°å为falseã - å
¶ä»å¼åæ
trueã
æ¯å¦ï¼
alert( Boolean(1) ); // true
alert( Boolean(0) ); // false
alert( Boolean("hello") ); // true
alert( Boolean("") ); // false
"0" æ¯ trueä¸äºç¼ç¨è¯è¨ï¼æ¯å¦ PHPï¼è§ "0" 为 falseãä½å¨ JavaScript ä¸ï¼é空çåç¬¦ä¸²æ»æ¯ trueã
alert( Boolean("0") ); // true
alert( Boolean(" ") ); // ç©ºæ ¼ï¼ä¹æ¯ trueï¼ä»»ä½é空åç¬¦ä¸²é½æ¯ trueï¼
æ»ç»
æä¸ç§å¸¸ç¨çç±»å转æ¢ï¼è½¬æ¢ä¸º string ç±»åã转æ¢ä¸º number ç±»åå转æ¢ä¸º boolean ç±»åã
åç¬¦ä¸²è½¬æ¢ ââ 转æ¢åçå¨è¾åºå
å®¹çæ¶åï¼ä¹å¯ä»¥éè¿ String(value) è¿è¡æ¾å¼è½¬æ¢ãåå§ç±»åå¼ç string ç±»å转æ¢é常æ¯å¾ææ¾çã
æ°ååè½¬æ¢ ââ 转æ¢åçå¨è¿è¡ç®æ¯æä½æ¶ï¼ä¹å¯ä»¥éè¿ Number(value) è¿è¡æ¾å¼è½¬æ¢ã
æ°åå转æ¢éµå¾ªä»¥ä¸è§åï¼
| å¼ | åæâ¦â¦ |
|---|---|
undefined |
NaN |
null |
0 |
true / false |
1 / 0 |
string |
âæåæ ·è¯»åâå符串ï¼ä¸¤ç«¯ç空ç½å符ï¼ç©ºæ ¼ãæ¢è¡ç¬¦ \nãå¶è¡¨ç¬¦ \t çï¼ä¼è¢«å¿½ç¥ã空åç¬¦ä¸²åæ 0ã转æ¢åºéåè¾åº NaNã |
å¸å°åè½¬æ¢ ââ 转æ¢åçå¨è¿è¡é»è¾æä½æ¶ï¼ä¹å¯ä»¥éè¿ Boolean(value) è¿è¡æ¾å¼è½¬æ¢ã
å¸å°å转æ¢éµå¾ªä»¥ä¸è§åï¼
| å¼ | åæâ¦â¦ |
|---|---|
0, null, undefined, NaN, "" |
false |
| å ¶ä»å¼ | true |
ä¸è¿°ç大夿°è§åé½å®¹æçè§£åè®°å¿ã人们é常ä¼ç¯é误çå¼å¾æ³¨æçä¾åæä»¥ä¸å 个ï¼
- 对
undefinedè¿è¡æ°ååè½¬æ¢æ¶ï¼è¾åºç»æä¸ºNaNï¼èé0ã - 对
"0"ååªæç©ºæ ¼çåç¬¦ä¸²ï¼æ¯å¦ï¼" "ï¼è¿è¡å¸å°åè½¬æ¢æ¶ï¼è¾åºç»æä¸ºtrueã
æä»¬å¨æ¬å°è没æè®² object ç±»åç转æ¢ã卿们å¦ä¹ 宿´å¤å ³äº JavaScript çåºç¡ç¥è¯åï¼æä»¬ä¼å¨ä¸é¨ä»ç» object çç« è 对象 ââ åå§å¼è½¬æ¢ ä¸è¯¦ç»è®²è§£ object ç±»å转æ¢ã
è¯è®º
<code>æ ç¾æå ¥åªæå 个è¯ç代ç ï¼æå ¥å¤è¡ä»£ç å¯ä»¥ä½¿ç¨<pre>æ ç¾ï¼å¯¹äºè¶ è¿ 10 è¡ç代ç ï¼å»ºè®®ä½ ä½¿ç¨æ²ç®±ï¼plnkrï¼JSBinï¼codepenâ¦ï¼