JavaScript å倿 å®å šã¬ã€ã
JavaScript ãæ±ã£ãŠãããšã "5" + 1 ã "51" ã«ãªã£ããã "5" - 1 ã 4 ã«ãªã£ããããç¶æ³ã«åºããããŸããæåã¯æ··ä¹±ãããããããŸãããããã㯠JavaScript ã®å倿ïŒType ConversionïŒã¡ã«ããºã ã«ãããã®ã§ãã
å倿ãšã¯ãããããŒã¿åãå¥ã®åãžå€æããããã»ã¹ãæããŸããJavaScript ã¯åçåä»ãèšèªãªã®ã§ãéçºè ãæç¢ºã«åãæå®ããªããŠããã©ã³ã¿ã€ã æã«èªåçã«åãæ±ºå®ã»å€æãããŸãããã®ãããªç¹æ§ã¯éçºã䟿å©ã«ããŸãããäºæãã¬ãã°ã®åå ã«ããªãåŸãŸãã
ãã®æçš¿ã§ã¯ãæç€ºçãªåå€æãšæé»çãªå倿ã®éãããããªããžã§ã¯ãã®å倿ããããŠå®åã§æ³šæãã¹ãèœãšã穎ãŸã§ãJavaScript ã®å倿ã®ããããåŽé¢ãæ±ããŸãããã®ã¬ã€ããéããŠå倿ã®åäœåçãæ£ç¢ºã«çè§£ããããå®å šã§äºæž¬å¯èœãªã³ãŒããæžããããã«ãªããŸãããã
æç€ºçå倿 vs æé»çå倿
JavaScript ã®å倿ã¯å€§ããäºã€ã«åããããŸãã
æç€ºçå倿ïŒExplicit Type ConversionïŒ ã¯ãéçºè
ãæå³ãæã£ãŠæç¢ºã«åã倿ããããšã§ããString(), Number(), Boolean() ãšãã£ã颿°ã䜿ã£ãŠåãã¯ã£ããå€ããŸãã
æé»çå倿ïŒImplicit Type ConversionïŒType CoercionïŒ ã¯ãJavaScript ãšã³ãžã³ãèªåçã«å倿ãè¡ãããšã§ããæŒç®åã颿°ãæåŸ ããåãšç°ãªãå€ãåãåã£ãéã«ãæã«å€æãè¡ãããŸãã
// æç€ºçå倿
const num = Number("123"); // æåå â æ°å
// æé»çå倿
const result = "5" + 1; // "51"ïŒæ°å 1 ãæååã«å€æãããïŒ
æç€ºçå倿ã¯ã³ãŒãã®æå³ãæç¢ºã«ç€ºããããå¯èªæ§ãšä¿å®æ§ãé«ãŸããŸãã察ããŠæé»çå倿ã¯äŸ¿å©ã§ã¯ãããŸãããäºæããªãçµæãæãå¯èœæ§ããããŸãã
æç€ºçåå€æã®ææ³
æååã«å€æãã
æååã«å€æããæ¹æ³ã¯äžã€ãããŸãã
String() 颿°ã䜿ã
String() 颿°ã¯ã©ããªå€ã§ãæååã«å€æããŸãã
String(123); // "123"
String(true); // "true"
String(null); // "null"
String(undefined); // "undefined"
.toString() ã¡ãœããã䜿ã
ã»ãšãã©ã®å€ã¯ .toString() ã¡ãœãããæã£ãŠããŸããããããnull ãš undefined ã¯ãã®ã¡ãœãããæããªãããããšã©ãŒã«ãªããŸãã
(123).toString(); // "123"
true.toString(); // "true"
[1, 2, 3].toString(); // "1,2,3"
// null ãš undefined ã¯ãšã©ãŒ
// null.toString(); // TypeError
空æååãšé£çµãã
空æååïŒ""ïŒãš + æŒç®åã䜿ããšãç°¡åã«æååã«å€æã§ããŸãã
123 + ""; // "123"
true + ""; // "true"
null + ""; // "null"
æ°åã«å€æãã
æ°åã«å€æããæ¹æ³ãããã€ããããŸãã
Number() 颿°ã䜿ã
Number() 颿°ã¯æååãããŒã«å€ãæ°åã«å€æããŸãã倿ã§ããªãå€ã¯ NaNïŒNot a NumberïŒãè¿ããŸãã
Number("123"); // 123
Number("123abc"); // NaN
Number(true); // 1
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
Number(" 123 "); // 123ïŒååŸã®ç©ºçœãé€å»ïŒ
parseInt() ãš parseFloat() ã䜿ã
parseInt() ãš parseFloat() ã¯æååã®å
é ããæ°åãããŒã¹ããŸããæ°åã§ãªãæåãåºãŠãããããã®çŽåãŸã§ã倿ããŸãã
parseInt("123", 10); // 123
parseInt("123px", 10); // 123ïŒ"px" ã¯ç¡èŠãããïŒ
parseInt("abc123", 10); // NaNïŒæ°åã§å§ãŸã£ãŠããªãïŒ
parseFloat("3.14"); // 3.14
parseFloat("3.14.15"); // 3.14ïŒæåã®ããããŸã§ïŒ
parseInt() ã®ç¬¬äºåŒæ°ã¯åºæ°ïŒradixïŒã瀺ããŸãã10鲿°ã«å€æããéã«ã¯ 10 ãæç€ºããã®ãå®å
šã§ãã
åé ãã©ã¹æŒç®å
åé
+ æŒç®åã¯ãå€ãæ°åã«çŽ æ©ã倿ããææ®µã§ãã
+"123"; // 123
+"10"; // 10
+true; // 1
+false; // 0
+"abc"; // NaN
ããŒã«ã«å€æãã
Boolean() 颿°ã䜿ã
Boolean() 颿°ã¯å€ãããŒã«ã«å€æããŸãã
Boolean(1); // true
Boolean(0); // false
Boolean("hello"); // true
Boolean(""); // false
Boolean([]); // trueïŒç©ºé
åã truthyïŒ
Boolean({}); // trueïŒç©ºãªããžã§ã¯ãã truthyïŒ
Falsy å€ vs Truthy å€
JavaScript ã«ã¯ false ã«å€æãããç¹å¥ãªå€ããããŸããããã falsy å€ ãšåŒã³ãŸãã
Falsy å€ïŒåèš 8 ã€ïŒïŒ
false0-00nïŒBigInt ã® 0ïŒNaN""ïŒç©ºæååïŒnullundefined
ãã以å€ã®ãã¹ãŠã®å€ã¯ truthy å€ ãšãªããŸããæ³šæãã¹ãã¯ã次ã®ãããªå€ã truthy ã§ãããšããããšã§ãïŒ
Boolean("false"); // trueïŒæåå "false"ïŒ
Boolean("0"); // trueïŒæåå "0"ïŒ
Boolean([]); // trueïŒç©ºé
åïŒ
Boolean({}); // trueïŒç©ºãªããžã§ã¯ãïŒ
Boolean(" "); // trueïŒç©ºçœæåïŒ
Boolean(function(){}); // trueïŒé¢æ°ïŒ
æé»çå倿ã®ããŸããŸãªç¶æ³
æååã³ã³ããã¹ã
+ æŒç®åã§ãªãã©ã³ãã®ãããããæååã§ããã°ãããçæ¹ãæååã«å€æãããŸãã
"5" + 1; // "51"
1 + "5"; // "15"
"Hello" + true; // "Hellotrue"
"Result: " + 100;// "Result: 100"
ãããè€æ°ã®å€ãå ç®ããå Žåãé åºãéèŠã§ãïŒ
1 + 2 + "3"; // "33"ïŒ1+2=3ã3+"3"="33"ïŒ
"1" + 2 + 3; // "123"ïŒ"1"+2="12"ã"12"+3="123"ïŒ
æ°åã³ã³ããã¹ã
+ ãé€ãç®è¡æŒç®åïŒ-, *, /, %ïŒã¯ãªãã©ã³ããæ°åã«å€æããŸãã
"5" - 1; // 4
"5" * "2"; // 10
"5" / 2; // 2.5
"5" % 2; // 1
"10" - "3"; // 7
倿ã§ããªãäŸå€çãªå Žå NaN ã«ãªããŸãïŒ
"abc" - 1; // NaN
"5" * "abc"; // NaN
ããŒã«ã³ã³ããã¹ã
æ¡ä»¶æïŒif, elseïŒã§ã¯å€ãèªåçã«ããŒã«ã«å€æãããŸãã
if ("") {
console.log("空æåå"); // å®è¡ãããªã
}
if ("Hello") {
console.log("æåãã"); // â
å®è¡ããã
}
if (0) {
console.log("0"); // å®è¡ãããªã
}
if ([]) {
console.log("é
å"); // â
å®è¡ãããïŒç©ºé
å㯠truthyïŒ
}
è«çæŒç®åïŒ&&, ||, !ïŒãããŒã«ã³ã³ããã¹ããäœããŸãïŒ
!!"hello"; // true
!!0; // false
"text" && 5; // 5ïŒæåã truthy ãªãäºçªç®ãè¿ãïŒ
0 || "default"; // "default"ïŒæåã falsy ãªãäºçªç®ãè¿ãïŒ
ç·©ãããªç䟡æ¯èŒïŒ==ïŒ
== æŒç®åã¯åãç°ãªãå Žåãæé»çå倿ãè¡ããŸãã
"5" == 5; // trueïŒæåå "5" ãæ°å 5 ã«å€æãããïŒ
"0" == false; // trueïŒã©ã¡ãã 0 ã«å€æãããïŒ
0 == ""; // trueïŒç©ºæååã 0 ã«å€æãããïŒ
null == undefined; // trueïŒç¹å¥ãªã±ãŒã¹ïŒ
null == 0; // falseïŒnull 㯠0 ã«å€æãããªãïŒ
ãã®ãããªäºæãã¬åäœãé¿ããããã«ã== ã®ä»£ããã« å³å¯ãªç䟡æ¯èŒæŒç®å === ã䜿çšããããšãæšå¥šãããŸãã
"5" === 5; // false
"0" === false; // false
0 === ""; // false
ãªããžã§ã¯ããšå倿
ãªããžã§ã¯ããåå§å€ïŒããªããã£ãïŒãžå€æããããšããJavaScript ã¯ç¹å¥ãªã¡ãœããã䜿çšããŸãã
toString() ãš valueOf() ã¡ãœãã
ãªããžã§ã¯ããæååãæ°åã«å€æãããæãJavaScript ã¯æ¬¡ã®é åºã§ã¡ãœãããåŒã³åºããŸãïŒ
- æååã³ã³ããã¹ãïŒ
toString()âvalueOf() - æ°åã³ã³ããã¹ãïŒ
valueOf()âtoString()
const obj = {
toString() {return "ãªããžã§ã¯ã";
},
valueOf() {return 42;
}
};
String(obj); // "ãªããžã§ã¯ã"ïŒtoString ãåŒã°ããïŒ
Number(obj); // 42ïŒvalueOf ãåŒã°ããïŒ
obj + ""; // "ãªããžã§ã¯ã"ïŒæååã³ã³ããã¹ãïŒ
obj - 0; // 42ïŒæ°åã³ã³ããã¹ãïŒ
é åãšãªããžã§ã¯ãã®åºæ¬çãªå€æåäœïŒ
String([1, 2, 3]); // "1,2,3"
String({}); // "[object Object]"
Number([]); // 0ïŒç©ºé
å㯠0ïŒ
Number([5]); // 5ïŒèŠçŽ ãäžã€ãªããã®å€ïŒ
Number([1, 2]); // NaNïŒèŠçŽ ãè€æ°ããïŒ
JSON.stringify() ãš JSON.parse()
JSON 圢åŒãžã®å€æã§ã¯å°çšã¡ãœããã䜿ãããŸãã
// ãªããžã§ã¯ã â JSON æåå
JSON.stringify({ a: 1, b: 2 }); // '{"a":1,"b":2}'
// JSON æåå â ãªããžã§ã¯ã
JSON.parse('{"a":1,"b":2}'); // { a: 1, b: 2 }
| 颿° | åœ¹å² |
|---|---|
JSON.stringify() |
ãªããžã§ã¯ã â JSON æåå |
JSON.parse() |
JSON æåå â ãªããžã§ã¯ã |
Date ãªããžã§ã¯ãã®å€æ
Date ãªããžã§ã¯ãã¯ç¶æ³ã«ãã£ãŠç°ãªã£ã倿ãããŸãã
const date = new Date("2025-10-22");
// æ°åã«å€æïŒã¿ã€ã ã¹ã¿ã³ãïŒ
Number(date); // 1729544400000
// æååã«å€æ
String(date); // "Wed Oct 22 2025 00:00:00 GMT+0"
ãã²ãã®ã¬ã€ããåèã«ãJavaScript ã®åå€æãæ£ããçè§£ããããå®å šã§äºæž¬å¯èœãªã³ãŒãã£ã³ã°ãç®æããŠãã ããã