JavaScriptãã¥ãŒããªã¢ã«ç¿»èš³ã®ãã®éšåã®ãããã¯ã¯ãäŸå€åŠçãèªåã»ãã³ãã³æ©èœãããã³ãã³ãã¬ãŒããªãã©ã«ã§ãã
â
ããŒã1ïŒæåã®ããã°ã©ã ãèšèªæ©èœãæšæºâ
ããŒã2ïŒã³ãŒãã¹ã¿ã€ã«ãšããã°ã©ã æ§é â
ããŒã3ïŒå€æ°ãããŒã¿åãåŒããªããžã§ã¯ãâ
ããŒã4ïŒæ©èœâ
ããŒã5ïŒé
åãšã«ãŒãâ
ããŒã6ïŒäŸå€ãã»ãã³ãã³ãã¯ã€ã«ãã«ãŒããªãã©ã«â
ããŒã7ïŒå³æ Œã¢ãŒãããã®ããŒã¯ãŒããã€ãã³ããã¢ãžã¥ãŒã«ãæ°åŠèšç®â
ããŒã8ïŒES6æ©èœã®æŠèŠâ
ããŒã9ïŒES7ãES8ãããã³ES9æšæºã®æŠèŠ
äŸå€åŠç
ã³ãŒãã®å®è¡äžã«åé¡ãçºçãããšãJavaScriptã§äŸå€ãšããŠè¡šãããŸãã äŸå€ãåŠçããææ®µãè¬ããªãå ŽåãäŸå€ãçºçãããšãããã°ã©ã ã忢ããã³ã³ãœãŒã«ã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãã
次ã®ã³ãŒãã¹ãããããæ€èšããŠãã ããã
let obj = {value: 'message text'} let notObj let fn = (a) => a.value console.log(fn(obj))
ããã«ã
value
ããããã£ãæã€ãªããžã§ã¯ããåŠçããããã«äœ¿çšããäºå®ã®é¢æ°ããããŸãã 圌女ã¯ãã®ããããã£ãè¿ããŸãã ãã®é¢æ°ãæ¬æ¥ã®ç®çãã€ãŸããåäœããããã«èšèšããããªããžã§ã¯ãã転éããããã«äœ¿çšããå Žåãå®è¡æã«ãšã©ãŒã¯çæãããŸããã ãããããã®äŸã§ã¯å®£èšãããŠãããåæåãããŠããªã倿°ã«äžé©åãªãã®ãæž¡ããšã
undefined
å€ã®
value
ããããã£ã«ã¢ã¯ã»ã¹ããããšãããšãšã©ãŒãçºçããŸãã ãšã©ãŒã¡ãã»ãŒãžãã³ã³ãœãŒã«ã«éä¿¡ãããããã°ã©ã ã®å®è¡ã忢ããŸãã
Node.jsã§ãã®ã³ãŒããå®è¡ãããšã次ã®ããã«ãªããŸãã
Node.jsã®TypeErroräŸå€WebããŒãžã®JSã³ãŒãã§ãã®ãããªããšãçºçããå Žåãåæ§ã®ã¡ãã»ãŒãžããã©ãŠã¶ãŒã³ã³ãœãŒã«ã«éä¿¡ãããŸãã ãããå®éã®ããã°ã©ã ã§çºçããå Žåãããšãã°-WebãµãŒããŒã³ãŒãã§ã¯ããã®åäœã¯éåžžã«æãŸãããããŸããã ããã°ã©ã ã忢ããããšãªãããšã©ãŒããã£ãããããããä¿®æ£ããããã®å¯Ÿçãè¬ããããšãã§ããã¡ã«ããºã ãããã°äŸ¿å©ã§ãã ãã®ãããªã¡ã«ããºã ã¯JavaScriptã«ååšãã
try...catch
ã³ã³ã¹ãã©ã¯ãã«ãã£ãŠè¡šãããŸãã
â建èšããã...ãã£ãã
try...catch
ã³ã³ã¹ãã©ã¯ãã䜿çšãããšãäŸå€ããã£ããããŠåŠçã§ããŸãã ã€ãŸãããšã©ãŒãåŒãèµ·ããå¯èœæ§ã®ããã³ãŒããå«ã
try
ãããã¯ãšããšã©ãŒãçºçãããšãã«å¶åŸ¡ã転éããã
catch
ãå«ãŸããŸãã
try
ãããã¯ã«ã¯ããã¹ãŠã®ããã°ã©ã ã³ãŒããå«ãŸããŠããããã§ã¯ãããŸããã å®è¡æãšã©ãŒãåŒãèµ·ããå¯èœæ§ã®ããéšåã¯ããã«é
眮ãããŸãã ããšãã°ãå€éšãœãŒã¹ããåä¿¡ããç¹å®ã®ããŒã¿ãåŠçããå¿
èŠããã颿°ã®åŒã³åºãã ãã®ãããªããŒã¿ã®æ§é ã颿°ã§äºæ³ããããã®ãšç°ãªãå Žåããšã©ãŒãçºçããå¯èœæ§ããããŸãã ããã¯ã
try...catch
æ§æã¹ããŒã ãã©ã®ãããªãã®ãã瀺ããŠã
try...catch
ã
try {
ã³ãŒãããšã©ãŒãªãã§å®è¡ãããå Žåã
catch
ïŒäŸå€ãã³ãã©ãŒïŒã¯å®è¡ãããŸããã ãšã©ãŒãçºçããå Žåããšã©ãŒãªããžã§ã¯ããããã«è»¢éããããã®ãšã©ãŒã«å¯ŸåŠããããã«ããã€ãã®ã¢ã¯ã·ã§ã³ãå®è¡ãããŸãã
ãã®äŸã§ã¯ããã®æ§é ãé©çšããŠãããã°ã©ã ã®å±éºãªã»ã¯ã·ã§ã³
fn()
颿°
fn()
åŒã³åºãããã»ã¯ã·ã§ã³ïŒãä¿è·ããŸãã
let obj = {value: 'message text'} let notObj let fn = (a) => a.value try { console.log(fn(obj)) } catch (e) { console.log(e.message) } console.log('Before')
Node.jsã§ãã®ã³ãŒãã®çµæãèŠãŠã¿ãŸãããã
Node.jsã§ã®ãšã©ãŒåŠçã芧ã®ãšããããã®äŸãåã®äŸãšæ¯èŒãããšããã¹ãŠã®ã³ãŒããå®è¡ãããåé¡ã®è¡ã®åã«ããã³ãŒããšããã®è¡ã®åŸã«ããã³ãŒããå®è¡ãããŸãã
Errorãªããžã§ã¯ãã®
message
ããããã£ã®å€ãã³ã³ãœãŒã«ã«åºåããã ãã§ããšã©ãŒããåŠçãããŸãã å®éã«äœ¿çšãããã³ãŒãã§çºçãããšã©ãŒã®åŠçã¯ããšã©ãŒã«ãã£ãŠç°ãªããŸãã
äžèšã§
try...catch
ãããã¯ã«ã€ããŠèª¬æããŸããããå®éã«ã¯ããã®æ§é ã«ã¯å¥ã®ãããã¯ãå«ãŸããŠããŸã
finally
ã
âæåŸã«ãããã¯
finally
ãããã¯ã«ã¯ã
try
ãããã¯ã§å®è¡ãããã³ãŒãã§ãšã©ãŒãçºçãããã©ããã«é¢ä¿ãªãå®è¡ãããã³ãŒããå«ãŸããŠããŸãã å€èŠ³ã¯æ¬¡ã®ãšããã§ãã
try {
finally
ãããã¯ã¯ã
try...catch...finally
ãããã¯ã«
catch
ãããã¯ããªãå Žåã«ã䜿çšã§ããŸãã ãã®ã¢ãããŒãã§ã¯ãããšãã°
try
ãããã¯ã§å æãããŠãããªãœãŒã¹ãè§£æŸããããã«ã
catch
䜿çšããæ§ç¯ãšåãæ¹æ³ã§äœ¿çšãããŸãã
âãã¹ããããtryãããã¯
tryãããã¯ã¯äžç·ã«ãã¹ãã§ããŸãã ãã®å ŽåãäŸå€ã¯æãè¿ã
catch
åŠçãã
catch
ã
try {
ãã®å Žåãå
éš
try
ãããã¯ã§äŸå€ãçºçãããšãå€éš
catch
åŠçãã
catch
ã
âèªå·±çæã®äŸå€
throw
ã¹ããŒãã¡ã³ãã䜿çšããŠãèªåã§äŸå€ãã¹ããŒã§ããŸãã å€èŠ³ã¯æ¬¡ã®ãšããã§ãã
throw value
ãã®åœä»€ãå®è¡ãããåŸãå¶åŸ¡ã¯æãè¿ã
catch
転éãã
catch
ããã®ãããªãããã¯ãèŠã€ãããªãå Žåãããã°ã©ã ã¯åæ¢ããŸãã äŸå€å€ã¯äœã§ãããŸããŸããã ããšãã°ããŠãŒã¶ãŒå®çŸ©ã®ãšã©ãŒãªããžã§ã¯ãã
ã»ãã³ãã³ã«ã€ããŠ
JavaScriptã§ã®ã»ãã³ãã³ã®äœ¿çšã¯ãªãã·ã§ã³ã§ãã äžéšã®ããã°ã©ããŒã¯ãããã䜿çšãããèªåé
眮ã·ã¹ãã ã«äŸåãã絶察ã«å¿
èŠãªå Žæã«ã®ã¿é
眮ããŸãã å¯èœãªéãããããé
眮ããããšã奜ã人ãããŸãã ãã®è³æã®èè
ã¯ãã»ãã³ãã³ãªãã§ããããããã°ã©ããŒã®ã«ããŽãªãŒã«èšåããŠããŸãã 圌ã¯ã2017幎ã®ç§ã«ãããã䜿çšãããæç€ºçã«æ¿å
¥ããã«ã©ãã§ãåé€ã§ããããã«Prettierãèšå®ããããšã«ãããšèšããŸãã åœŒã®æèŠã§ã¯ãã»ãã³ãã³ãªãã®ã³ãŒãã¯ããèªç¶ã§èªã¿ãããããã«èŠããŸãã
ãããããJSéçºè
ã®ã³ââãã¥ããã£ã¯ãã»ãã³ãã³ã«é¢ããŠ2ã€ã®ãã£ã³ãã«åãããŠãããšèšããŸãã åæã«ãæç€ºçãªã»ãã³ãã³ã®é
眮ãèŠå®ããJavaScriptã¹ã¿ã€ã«ã¬ã€ããšããããã䜿çšããªãããšãæšå¥šããã¬ã€ãããããŸãã
JavaScriptã«ã¯èªåã»ãã³ãã³ïŒèªåã»ãã³ãã³æ¿å
¥ãASIïŒã®ã·ã¹ãã ããããããããã¯ãã¹ãŠå¯èœã§ãã ãã ããJSã³ãŒãã§ã¯ãå€ãã®ç¶æ³ã§ãããã®æåã䜿çšããã«å®è¡ã§ãããšããäºå®ãããã³å®è¡ã®ããã«ã³ãŒããæºåãããšãã«ã»ãã³ãã³ãèªåçã«é
眮ããããšããäºå®ã¯ãããã°ã©ããŒããããçºçããèŠåãç¥ãå¿
èŠããªããšããæå³ã§ã¯ãããŸããã ãããã®ã«ãŒã«ãç¡èŠãããšãšã©ãŒãçºçããŸãã
automaticèªåã»ãã³ãã³ã®ã«ãŒã«
JavaScriptããŒãµãŒã¯ã次ã®ç¶æ³ã§ããã°ã©ã ããã¹ããè§£æãããšãã«ã»ãã³ãã³ãèªåçã«è¿œå ããŸãã
- 次ã®è¡ãçŸåšã®ã³ãŒããäžæããã³ãŒãã§å§ãŸãå ŽåïŒç¹å®ã®ã³ãã³ãã®ã³ãŒãã¯è€æ°ã®è¡ã«ããå ŽåããããŸãïŒã
- 次ã®è¡ãæå
}
ã§å§ãŸãå ŽåãçŸåšã®ãããã¯ãéããŸãã - ããã°ã©ã ã³ãŒããã¡ã€ã«ã®çµãããæ€åºããããšãã
return
ã³ãã³ãã®ããè¡ãbreak
ã³ãã³ãã®ããè¡ãthrow
ã³ãã³ãã®ããè¡ãcontinue
ã³ãã³ãã®ããè¡ã
expectedæåŸ
ã©ããã«æ©èœããªãã³ãŒãã®äŸ
äžèšã®ã«ãŒã«ã瀺ãäŸãããã€ã瀺ããŸãã ããšãã°ã次ã®ã³ãŒããã©ã°ã¡ã³ããå®è¡ããçµæãäœãåºåããããšæããŸããïŒ
const hey = 'hey' const you = 'hey' const heyYou = hey + ' ' + you ['h', 'e', 'y'].forEach((letter) => console.log(letter))
ãã®ã³ãŒããå®è¡ããããšãããšã
Uncaught TypeError: Cannot read property 'forEach' of undefined
ãšã©ãŒã
Uncaught TypeError: Cannot read property 'forEach' of undefined
ããŸããã«ãŒã«No. 1ã«åºã¥ããŠã
Uncaught TypeError: Cannot read property 'forEach' of undefined
ã·ã¹ãã ã®
Uncaught TypeError: Cannot read property 'forEach' of undefined
ãæ¬¡ã®ããã«ã³ãŒããè§£éããããšããŸãã
const hey = 'hey'; const you = 'hey'; const heyYou = hey + ' ' + you['h', 'e', 'y'].forEach((letter) => console.log(letter))
ãã®åé¡ã¯ãæåã®äŸã®æåŸãã2çªç®ã®è¡ã®åŸã«ã»ãã³ãã³ã眮ãããšã§è§£æ±ºã§ããŸãã
ããã«å¥ã®ã³ãŒãããããŸãã
(1 + 2).toString()
å®è¡ã®çµæã¯ãæåå
"3"
åºåã«ãªããŸãã ããããæ¬¡ã®ã³ãŒãã¹ããããã«ãã®ãããªãã®ãçŸãããã©ããªããŸããïŒ
const a = 1 const b = 2 const c = a + b (a + b).toString()
ãã®å Žåã
TypeError: b is not a function
ãšã©ãŒã衚瀺ãããŸããäžèšã®ã³ãŒãã¯æ¬¡ã®ããã«è§£éãããããã
TypeError: b is not a function
ã
const a = 1 const b = 2 const c = a + b(a + b).toString()
ããã§ãã«ãŒã«4ã«åºã¥ãäŸãèŠãŠã¿ãŸãããã
(() => { return { color: 'white' } })()
ãã®IIFEã¯
color
ããããã£ãå«ããªããžã§ã¯ããè¿ããšæããããããŸããããå®éã«ã¯ããã§ã¯ãããŸããã 代ããã«ãã·ã¹ãã ã¯
return
ã³ãã³ãã®åŸã«ã»ãã³ãã³ã远å ããããã颿°ã¯
undefined
ãè¿ããŸãã
åæ§ã®åé¡ã解決ããã«ã¯ããªããžã§ã¯ããªãã©ã«ã®å·Šäžæ¬åŒ§ã
return
ã³ãã³ããšåãè¡ã«é
眮ããå¿
èŠããããŸãã
(() => { return { color: 'white' } })()
次ã®ã³ãŒããã©ã°ã¡ã³ããèŠããšãã¡ãã»ãŒãžããã¯ã¹ã«
0
ã衚瀺ãããŠãããšæããããããŸããã
1 + 1 -1 + 1 === 0 ? alert(0) : alert(2)
ãã ããã«ãŒã«1ã«åŸã£ãŠãã®ã³ãŒãã¯æ¬¡ã®ããã«è¡šãããããã2ãåºåããŸãã
1 + 1 -1 + 1 === 0 ? alert(0) : alert(2)
JavaScriptã§ã»ãã³ãã³ã䜿çšããå Žåã¯æ³šæãå¿
èŠã§ãã ã»ãã³ãã³ã®ç±çãªæ¯æè
ãšãã®æµã«äŒãããšãã§ããŸãã å®éãã³ãŒãã«ã»ãã³ãã³ãå¿
èŠãã©ããã倿ãããšãã¯ãJSãèªå眮æããµããŒãããŠãããšããäºå®ã«é Œãããšãã§ããŸãããã³ãŒãã§å¿
èŠãã©ããã¯å
šå¡ãèªåã§æ±ºå®ããå¿
èŠããããŸãã äž»ãªããšã¯ãéžæããã¢ãããŒããäžè²«ããŠåççã«é©çšããããšã§ãã ã»ãã³ãã³ã®é
眮ãšã³ãŒãã®æ§é ã«é¢ããŠã次ã®èŠåãæšå¥šã§ããŸãã
return
ã³ãã³ãã䜿çšããŠãã³ãã³ããšåãè¡ã«é¢æ°ããè¿ããããã®ãé
眮ããŸãã åãããšãbreak
ã throw
ã continue
ã³ãã³ãã«ã€ããŠcontinue
èšããŸãã- ãã®è¡ã¯åã®è¡ãšèªåçã«çµåãããã·ã¹ãã ã«ãã£ãŠé¢æ°ã®åŒã³åºããŸãã¯é
åèŠçŽ ãžã®ã¢ã¯ã»ã¹ã®è©Šè¡ãšããŠæç€ºãããå¯èœæ§ããããããã³ãŒãã®æ°ããè¡ããã©ã±ããã§å§ãŸãç¶æ³ã«ç¹ã«æ³šæããŠãã ããã
äžè¬ã«ãã»ãã³ãã³ãèªåã§çœ®ãããèªåé
眮ã«äŸåãããã«ããããããã³ãŒãããã¹ãããŠãæåŸ
ã©ããã«åäœããããšã確èªããããšãã§ããŸãã
åŒçšç¬Šãšã¯ã€ã«ãã«ãŒãæå
JavaScriptã§åŒçšç¬Šã䜿çšããæ©èœã«ã€ããŠèª¬æããŸãããã ã€ãŸããJSããã°ã©ã ã§èš±å¯ãããŠããæ¬¡ã®çš®é¡ã®åŒçšã«ã€ããŠèª¬æããŠããŸãã
- åäžåŒçšç¬Šã
- äºéåŒçšç¬Šã
- ããã¯ã¯ã©ãŒãã
äžè¬ã«ãäžéåŒçšç¬ŠãšäºéåŒçšç¬Šã¯åããšèŠãªãããšãã§ããŸãã
const test = 'test' const bike = "bike"
ãããã®éã«ã¯å®è³ªçã«éãã¯ãããŸããã ãããããå¯äžã®é¡èãªéãã¯ãåäžåŒçšç¬Šã§å²ãŸããæååã§ã¯ãåäžåŒçšç¬Šã®æåããšã¹ã±ãŒãããå¿
èŠããããäºéåŒçšç¬Šã§å²ãŸããæååã§ã¯ãæåãäºéã§ããããšã§ãã
const test = 'test' const test = 'te\'st' const test = 'te"st' const test = "te\"st" const test = "te'st"
ããŸããŸãªã¹ã¿ã€ã«ã¬ã€ãã§ãåäžåŒçšç¬Šã®äœ¿çšã«é¢ããæšå¥šäºé
ãšäºéåŒçšç¬Šã®äœ¿çšã«é¢ããæšå¥šäºé
ã®äž¡æ¹ãèŠã€ããããšãã§ããŸãã ãã®è³æã®èè
ã¯ãJSã³ãŒãã§ã¯ãåäžåŒçšç¬Šã®ã¿ã䜿çšããäºéåŒçšç¬Šã¯HTMLã³ãŒãã§ã®ã¿äœ¿çšããããåªããŠãããšè¿°ã¹ãŠããŸãã
ããã¯ãã£ãã¯ã¯ã2015幎ã®ES6æšæºã®ãªãªãŒã¹ã§JavaScriptã«ç»å ŽããŸããã ä»ã®æ°æ©èœã®äžã§ãç¹ã«ãè€æ°è¡ã®æååãç°¡åã«èšè¿°ããããšãã§ããŸãã ãã®ãããªæååã¯ããšã¹ã±ãŒãã·ãŒã±ã³ã¹
\n
ã䜿çšããŠãéåžžã®åŒçšç¬Šã䜿çšããŠæå®ããããšãã§ããŸãã ãããªæãã§ãã
const multilineString = 'A string\non multiple lines'
å転ã³ã³ãïŒéåžžãããããå
¥åããããã®ãã¿ã³ã¯ããŒããŒãã®æ°åããŒ1ã®å·ŠåŽã«ãããŸãïŒã¯
\n
ãªãã§å®è¡ããŸãã
const multilineString = `A string on multiple lines`
ããããéåŒçšç¬Šã®å¯èœæ§ã¯ããã«éå®ãããŸããã ãã®ãããéåŒçšç¬Šã䜿çšããŠæååãèšè¿°ããå Žåã
${}
æ§æã䜿çšããŠãJSåŒã®èšç®çµæã®å€ãããã«ä»£å
¥ããããšãã§ããŸãã
const multilineString = `A string on ${1+1} lines`
ãã®ãããªæååã¯ããã³ãã¬ãŒããªãã©ã«ãšåŒã°ããŸãã
ãã³ãã¬ãŒããªãã©ã«ã«ã¯æ¬¡ã®æ©èœããããŸãã
- è€æ°è¡ããã¹ãããµããŒãããŠããŸãã
- ãããã¯æååãè£éããããšãå¯èœã«ããŸã;çµã¿èŸŒã¿åŒã¯ãããã§äœ¿çšã§ããŸãã
- ã¿ã°ä»ããã³ãã¬ãŒãã䜿çšããŠãç¬èªã®ãã¡ã€ã³åºæèšèªïŒDSLããã¡ã€ã³åºæèšèªïŒãäœæã§ããŸãã
ãããã®æ©èœã«ã€ããŠè©±ããŸãããã
âè€æ°è¡ããã¹ã
ããã¯ã¯ã©ãŒãã§è€æ°è¡ã®ããã¹ããèšå®ãããšãããã®ãããªããã¹ãã®ã¹ããŒã¹ã¯ä»ã®æåãšåããããéèŠã§ããããšãèŠããŠããå¿
èŠããããŸãã ããšãã°ã次ã®è€æ°è¡ã®ããã¹ããèããŸãã
const string = `First Second`
圌ã®çµè«ã¯ããã以äžãäžããã§ãããã
First Second
ã€ãŸãããã®ããã¹ãããšãã£ã¿ãŒã«å
¥åããããšãã«ãããããããã°ã©ããŒã¯ãåºåæã«
First
ãš
Second
ãšããåèªãå³å¯ã«äºãã®äžã«è¡šç€ºãããããšãæåŸ
ããŠããŸããããå®éã¯ããã§ã¯ãããŸããã ãã®åé¡ãåé¿ããã«ã¯ãæ¹è¡ã§è€æ°è¡ããã¹ããéå§ããéåŒçšç¬ŠãéããçŽåŸã«ãè¡ã®å
é ãŸãã¯æ«å°Ÿã«ããç©ºçœæåãåé€ãã
trim()
ã¡ãœãããåŒã³åºã
trim()
ã ãã®ãããªæåã«ã¯ãç¹ã«ã¹ããŒã¹ãšã¿ããå«ãŸããŸãã è¡æ«æåãåé€ãããŸãã
ãããªæãã§ãã
const string = ` First Second`.trim()
âè£é
ããã§ã®è£éãšã¯ã倿°ãšåŒãæååã«å€æããããšãæå³ããŸãã ããã¯ã
${}
æ§é ã䜿çšããŠè¡ãããŸãã
const variable = 'test' const string = `something ${ variable }`
åŒã
${}
ã
${}
ãããã¯ã«ã¯äœã§ã远å ã§ããŸãã
const string = `something ${1 + 2 + 3}` const string2 = `something ${foo() ? 'x' : 'y' }`
ããã¹ã
something 6
ã宿°
string
ã«å
¥ããããã¹ã
something x
ãŸãã¯ããã¹ã
something y
ã宿°
string2
æžã蟌ãŸããŸãã 颿°
foo()
ãtrueãŸãã¯falseãè¿ããã©ããã«äŸåããŸãïŒçå笊ã®åã«ãããã®ãtrueã®å Žåãçå笊ã®åŸã«ãããã®ãè¿ãäžé
æŒç®åãããã§äœ¿çšãããŸããã³ãã³ã®åŸã«æ¥ãïŒã
aggedã¿ã°ä»ããã³ãã¬ãŒã
ã¿ã°ä»ããã³ãã¬ãŒãã¯ãå€ãã®äžè¬çãªã©ã€ãã©ãªã§äœ¿çšãããŠããŸãã ãããã®äžã«ã¯ã
Styled Components ã
Apollo ã
GraphQLããããŸãã
ãã®ãããªãã¿ãŒã³ãåºåãããã®ã¯ã颿°ã«ãã£ãŠå®çŸ©ãããããã€ãã®ããžãã¯ã«åŸããŸãã ã¿ã°ä»ããã³ãã¬ãŒãæååãæäœããæ¹æ³ã瀺ãã
åºçç©ã® 1ã€ã§å°ãä¿®æ£ãããäŸã次ã«ç€ºããŸãã
const esth = 8 function helper(strs, ...keys) { const str1 = strs[0]
ããã§ã
8
çªç®ã®æ°åã
esth
宿°ã«æžãããŠããå Žåã
ES 8 is awesome
è¡ã¯
es
ãŸãã ãã以å€ã®å Žåã¯ãå¥ã®è¡ããããŸãã ããšãã°ã
esth
æ°å€
6
esth
å Žåã
ES 6 is good
ããã«èŠããŸãã
ã¹ã¿ã€ã«ä»ãã³ã³ããŒãã³ãã¯ãã¿ã°ä»ããã³ãã¬ãŒãã䜿çšããŠCSSæååãå®çŸ©ããŸãã
const Button = styled.button` font-size: 1.5em; background-color: black; color: white; `;
Apolloã§ã¯ãGraphQLã¯ãšãªãå®çŸ©ããããã«äœ¿çšãããŸãã
const query = gql` query { ... } `
ã¿ã°ä»ããã³ãã¬ãŒãã®ä»çµã¿ãç¥ã£ãŠããã°ãåã®äŸã®
styled.button
ãš
gql
ã¯åãªãæ©èœã§ããããšãçè§£ããã®ã¯ç°¡åã§ãã
function gql(literals, ...expressions) { }
ããšãã°ã
gql()
颿°ã¯ãèšç®ã®çµæã§ããå¯èœæ§ã®ããæååãè¿ããŸãã ãã®é¢æ°ã®
literals
ãã©ã¡ãŒã¿ãŒã¯ããã³ãã¬ãŒããªãã©ã«ã®å
容ãéšåã«åå²ããé
åã§ãããåŒã¯åŒã®è©äŸ¡çµæãå«ã¿ãŸãã
次ã®è¡ãè§£æããŸãããã
const string = helper`something ${1 + 2 + 3} `
helper
颿°ã¯ã2ã€ã®èŠçŽ ãå«ã
literals
é
åãååŸã
literals
ã æåã®è¡ã«ã¯ã¹ããŒã¹ãä»ããããã¹ããããã2è¡ç®ã«ã¯ç©ºã®è¡ããããŸããã€ãŸããåŒ
${1 + 2 + 3}
ãšè¡ã®çµããã®éã«ãããŸãã
espressions
é
åã«ã¯
6
ã€ã®èŠçŽ ããããŸãã
ããã¯ãã£ãšè€éãªäŸã§ãã
const string = helper`something another ${'x'} new line ${1 + 2 + 3} test`
ããã§ã
helper
颿°ã§ã¯ã次ã®é
åãæåã®ãã©ã¡ãŒã¿ãŒãšããŠååŸãããŸãã
[ 'something\nanother ', '\nnew line ', '\ntest' ]
2çªç®ã®é
åã¯æ¬¡ã®ããã«ãªããŸãã
[ 'x', 6 ]
ãŸãšã
仿¥ã¯ãäŸå€åŠçãã»ãã³ãã³ã®èªå眮æãããã³JavaScriptã®ãã³ãã¬ãŒããªãã©ã«ã«ã€ããŠèª¬æããŸããã æ¬¡åã¯ãèšèªã®ããéèŠãªæŠå¿µãããã€ãèŠãŠãããŸãã ç¹ã«-峿 Œã¢ãŒããã¿ã€ããŒãæ°åŠèšç®ã§åäœããŸãã
芪æãªãèªè
ïŒ JavaScriptã§ã¿ã°ä»ããã³ãã¬ãŒãã®æ©èœã䜿çšããŠããŸããïŒ
