
ããã³ããšã³ãã®ã¬ã€ãã©ã€ã³
HTMLãCSSãããã³JavaScriptã³ãŒããèšèšããã©ãŒãããããããã®ã«ãŒã«ãšã¬ã€ãã©ã€ã³ã ãã®ç®æšã¯ãã³ãŒãã®åè³ªãæ¹åããã³ã©ãã¬ãŒã·ã§ã³ãšã€ã³ãã©ã¹ãã©ã¯ãã£ãµããŒããä¿é²ããããšã§ãã
翻蚳è
ãã
æ¹ããŠçæ§ã«ãããã€ãç³ãäžããŸããç§ã®ååã¯ããã·ã ã»ã€ã¯ããã§ãããããŠä»æ¥ãããªãã«åœ¹ç«ã€ç¿»èš³ãæºåããŸããã ãã«ã®ãŒã®éçºè
ã§ãã
Benjamin De CockïŒBenjamin De CockïŒã¯ãHTMLãCSSãJSãèšè¿°
ããããã®
ãã¹ããã©ã¯ãã£ã¹ãšããŠã®å°äœã確ç«ããã³ãŒãèšèšã®ã¬ã€ãã©ã€ã³ãããã€ãåéããŸããã ãã¡ãããå€ãã®æšå¥šäºé
ããããŸããããšãã°ã
Googleããã®åªãã
ã¬ã€ãã©ã€ã³ããããŸã ãããããä»ã«ãäœãããããŸãããå°ãªããšããããã®ããã€ãã«åŸããšãã³ãŒããæ¹åãããããšãæåŸ
ã§ããŸãã å Žåã«ãã£ãŠã¯ããããã®ã¬ã€ãã©ã€ã³ã«åŸãããšã¯æçšã§ã¯ãããŸãããããŸã£ããéã§ãã äžè¬çã«ãããã¯ãã¹ãŠããªãã®çµéšãšã±ãŒã¹ã®ããžã§ã³ã«äŸåããŸããåå¿è
ã®å Žåãããããä»ã®äººãæžããŠããããšãè©äŸ¡ããã®ãããæçã§ããã瀟äŒã§ã¯ãããçå®ã§ãããšèããããŸãã誰ã ãšæããŸããã ããã§ã¯å§ããŸãããã
HTML
- æå³è«
- ç°¡æœã
- èªã¿ããã
- ææžã®èšèª
- æå¹æ§
CSS
- ã»ãã³ãã³
- ãããã¯ã¢ãã«
- ã¹ããªãŒã
- ããžã·ã§ãã³ã°
- ã»ã¬ã¯ã¿ãŒ
- ç¹ç°æ§
- ãªãŒããŒã©ã€ã
- ç¶æ¿
- ç°¡æœã
- è±èªã®æå®
- ãã³ããŒãã¬ãã£ãã¯ã¹
- ã¢ãã¡ãŒã·ã§ã³
- åäœ
- ã«ã©ãŒã¢ãã«
- æç»
- ã«ãŒãè²
Javascript
- æ§èœ
- å€éšããã®ç¬ç«
- ãã€ãã£ã
- åŒ·å¶æ¯èŒ
- ãµã€ã¯ã«
- åŒæ°
- é©ç𿹿³ã®äœ¿çš
- bindã¡ãœããã®äœ¿çš
- é«éã¡ãœãã
- æ
- ãã£ãã·ã³ã°
- 倿°
- æ¡ä»¶
- ã€ãã¬ãŒã¿
- 飿³é
åãšããŠã®ãªããžã§ã¯ã
- ã«ã¬ãŒ
- èªã¿ããã
- ã³ãŒãã®åå©çš
- äŸåé¢ä¿
HTML
æå³è«
HTML5ã¯ãããã¥ã¡ã³ããŸãã¯ã³ã³ãã³ãã®æ£ç¢ºãªæå³èšè¿°ãç®çãšããååãªæ°ã®èŠçŽ ãæäŸããŸãã ãããã£ãŠãèªåœãäžæããã£ãŠããããšã確èªããŠãã ããã
<div id="main"> <div class="article"> <div class="header"> <h1>Blog post</h1> <p>Published: <span>21st Feb, 2015</span></p> </div> <p>âŠ</p> </div> </div> <main> <article> <header> <h1>Blog post</h1> <p>Published: <time datetime="2015-02-21">21st Feb, 2015</time></p> </header> <p>âŠ</p> </article> </main>
ã³ãŒãã§äœ¿çšããèŠçŽ ã®ã»ãã³ãã£ã¯ã¹ãå¿
ãçè§£ããŠãã ããã ãããã®ã»ãã³ãã£ãã¯èŠçŽ ã«äžç«ã®ãŸãŸã§ããå Žåãã»ãã³ãã£ãã¯èŠçŽ ãäžé©åã«äœ¿çšããããééã£ãå Žæã§äœ¿çšãããããã®ã¯éåžžã«æªãããšã§ãã
<h1> <figure> <img alt=Company src=logo.png> </figure> </h1> <h1> <img alt=Company src=logo.png> </h1>
ç°¡æœã
ç°¡åã«ã³ãŒããæžããŠã¿ãŠãã ããã XHTMLããæµããå€ãç¿æ
£ãå¿ããŠãã ããã
<!doctype html> <html lang=en> <head> <meta http-equiv=Content-Type content="text/html; charset=utf-8" /> <title>Contact</title> <link rel=stylesheet href=style.css type=text/css /> </head> <body> <h1>Contact me</h1> <label> Email address: <input type=email placeholder=you@email.com required=required /> </label> <script src=main.js type=text/javascript></script> </body> </html> <!doctype html> <html lang=en> <meta charset=utf-8> <title>Contact</title> <link rel=stylesheet href=style.css> <h1>Contact me</h1> <label> Email address: <input type=email placeholder=you@email.com required> </label> <script src=main.js></script> </html>
èªã¿ããã
ã³ãŒãã®å¯èªæ§ã¯äºæ¬¡çã§ãã£ãŠã¯ãªããŸããã ãã¡ããããµã€ãã確å®ã«æ¹åããããã«æé©åïŒWCAGïŒã®å°éå®¶ã§ããå¿
èŠã¯ãããŸããããä»ãããã³ãŒãã®æ¹åã«åœ¹ç«ã€å°ããªãã®ãããã«ä¿®æ£ããããšãã§ããŸãã
-alt屿§ãæ£ãã䜿çšãã
-ååïŒãªã³ã¯ïŒãšèŠçŽ ïŒãã¿ã³ïŒãæ¥ç¶ããæå³ã§ååãä»ããŸãïŒ
<div class = button> -ããã¯æ®èè¡çºã§ãïŒ
-æ
å ±ãšããŠãè±ã®ååã«äŸåããªãã§ãã ãã
-ç¹å®ã®ã©ãã«ãšãã©ãŒã èŠçŽ ãæç€ºçã«ãã€ã³ãããŸã
<h1><img alt="Logo" src="logo.png"></h1> <h1><img alt="My Company, Inc." src="logo.png"></h1>
ææžã®èšèª
èšèªå®çŸ©ãšæåãšã³ã³ãŒãã£ã³ã°ã¯ãªãã·ã§ã³ã§ãããHTTPããããŒã«ãªã¹ããããŠããå Žåã§ããåžžã«ããã¥ã¡ã³ãã¬ãã«ã§å®£èšããããšããå§ãããŸãã åªå
æåãšã³ã³ãŒãã¯UTF-8ã§ãã
<!doctype html> <title>, .</title> <!doctype html> <html lang=ru> <meta charset=utf-8> <title>, .</title> </html>
æå¹æ§
ã³ã³ãã³ãã«ã¹ã¯ãªããã®èªã¿èŸŒã¿ã远å ããæ£åœãªçç±ããªãå Žåã¯ãããã¥ã¡ã³ãã®æåŸã«ã¹ã¯ãªãããæžã蟌ãããšãããããã¹ã¯ãªããã¯ããŒãžã®ã¬ã³ããªã³ã°ããããã¯ããŸããã éåžžã«éãã¹ã¿ã€ã«ã·ãŒããããå Žåã¯ãããããããã€ãã«åå²ããŠåå¥ã«ããŒããããã©ã€ããªã³ã³ãã³ããããã«ã¬ã³ããªã³ã°ãããããã«ããŸãã ãã¡ããããã¡ã€ã«ãå€ãã»ã©ãHTTPãªã¯ãšã¹ããå€ãã2ã€ã®ãªã¯ãšã¹ãã1ã€ãããé
ããªããŸããããã®å Žåãç®çã®ã³ã³ãã³ãã®è¡šç€ºé床ãéèŠãªèŠçŽ ã«ãªããŸãã
<!doctype html> <meta charset=utf-8> <script src=analytics.js></script> <title>Hello, world.</title> <p>...</p> <!doctype html> <meta charset=utf-8> <title>Hello, world.</title> <p>...</p> <script src=analytics.js></script>
CSS
ã»ãã³ãã³
ã»ãã³ãã³ã¯çŽç²ã«æè¡çãªã«ãŒã«åºåãèšå·ã§ãããCSSã¯åžžã«ã»ãã³ãã³ãçµäºæŒç®åãšããŠæ±ããŸãã
div { color: red } div { color: red; }
ããã¯ã¹ã¢ãã«
ãããã¯ã¢ãã«ã¯ãããã¥ã¡ã³ãå
šäœã§åãã§ããããšãçæ³çã§ãã ã°ããŒãã«ã«ãŒã«
* {box-sizingïŒborder-box; }ããã¯æ£åžžã§ãããç¹å®ã®èŠçŽ ã®ãããã¯ã¢ãã«ã倿Žã§ããªãããšã«æ³šæããŠãã ããã
div { width: 100%; padding: 10px; box-sizing: border-box; } div { padding: 10px; }
ã¹ããªãŒã
èŠçŽ ãªãã§å®è¡ã§ããå Žåã¯ãèŠçŽ ã®æšæºã®åäœã倿Žããªãã§ãã ããã ããã¥ã¡ã³ãã¹ããªãŒã ã§ã¢ã€ãã ãã¯ã©ã·ãã¯è¡šç€ºã«ä¿ã¡ãŸãã ããšãã°ãç»åã®äžã®ã¹ããŒã¹ãåé€ããŠãããã®è¡šç€ºã«ã¯åœ±é¿ããŸããã
img { display: block; } img { vertical-align: middle; }
åæ§ã«ãã¡ã€ã³ã¹ã¬ãããªãã§ã§ããå Žåã¯ãã¡ã€ã³ã¹ã¬ããããã¢ã€ãã ããã«ããªãã§ãã ããã
div { width: 100px; position: absolute; right: 0; } div { width: 100px; margin-left: auto; }
ããžã·ã§ãã³ã°
CSSã§èŠçŽ ãé
眮ããã«ã¯å€ãã®æ¹æ³ããããŸããã以äžã®ããããã£ã«éå®ããŠãã ããã åªå
é ã«ïŒ
display: block; display: flex; position: relative; position: sticky; position: absolute; position: fixed;
ã»ã¬ã¯ã¿ãŒ
DOMã«é¢é£ä»ããããŠããã»ã¬ã¯ã¿ãŒã®çµã¿åãããæå°éã«æããŸãã å Žåã«ãã£ãŠã¯ã3ã€ã®æ§é ã»ã¬ã¯ã¿ãŒïŒç䌌ã¯ã©ã¹ãåå«ãããã³ã³ã³ãããŒã¿ãŒïŒãä»ããŠæ€çŽ¢ããããããæ€çŽ¢ããèŠçŽ ã«è¿œå ã®ã¯ã©ã¹ã远å ããæ¹ãè¯ãå ŽåããããŸãã
div:first-of-type :last-child > p ~ * div:first-of-type .info
ã»ã¬ã¯ã¿ãŒã®ãªãŒããŒããŒããé¿ããŸãã
img[src$=svg], ul > li:first-child { opacity: 0; } [src$=svg], ul > :first-child { opacity: 0; }
ç¹ç°æ§
ãªãŒããŒã©ã€ãã§ããªãå€ãšã»ã¬ã¯ã¿ãŒã¯äœ¿çšããªãã§ãã ããã
idã®äœ¿çšãæå°éã«ããã«ãŒã«ãé¿ã
ãŸãïŒéèŠ .bar { color: green !important; } .foo { color: red; } .foo { color: red; } .foo.bar { color: green; }
ãªãŒããŒã©ã€ã
ã»ã¬ã¯ã¿ãŒã¹ã¿ã€ã«ããªãŒããŒã©ã€ããããšããããã°ãå°é£ã«ãªããŸãã å¯èœã§ããã°ãããé¿ããŠãã ããã
li { visibility: hidden; } li:first-child { visibility: visible; } li + li { visibility: hidden; }
ç¶æ¿
ãšã«ããã¹ã¿ã€ã«ãç¶æ¿ã§ããã»ã¬ã¯ã¿ãŒã®å®çŸ©ãè€è£œããªãã§ãã ããã
div h1, div p { text-shadow: 0 1px 0 #fff; } div { text-shadow: 0 1px 0 #fff; }
ç°¡æœã
ã³ãŒããç°¡æœã«ããŸãã ãŸã£ããå¿
èŠã®ãªãå Žæã§è€æ°ã®ããããã£ã䜿çšããªãããã«ããŠãã ããã
div { transition: all 1s; top: 50%; margin-top: -10px; padding-top: 5px; padding-right: 10px; padding-bottom: 20px; padding-left: 10px; } div { transition: 1s; top: calc(50% - 10px); padding: 5px 10px 20px; }
è±èªã®æå®
ã§ããã°è±èªã®æ°åŠã䜿çšããŠãã ããã
:nth-child(2n + 1) { transform: rotate(360deg); } :nth-child(odd) { transform: rotate(1turn); }
ãã³ããŒãã¬ãã£ãã¯ã¹
ã¬ã¬ã·ãŒãã¬ãã£ãã¯ã¹ã䜿çšããªãã§ãã ããã æ¬åœã«äœ¿çšããå¿
èŠãããå Žåã¯ããã®å Žåãæšæºã®åã«è¿œå ããŸãã
div { transform: scale(2); -webkit-transform: scale(2); -moz-transform: scale(2); -ms-transform: scale(2); transition: 1s; -webkit-transition: 1s; -moz-transition: 1s; -ms-transition: 1s; } div { -webkit-transform: scale(2); transform: scale(2); transition: 1s; }
ã¢ãã¡ãŒã·ã§ã³
ã¢ãã¡ãŒã·ã§ã³ããããã©ã³ãžã·ã§ã³ã䜿çšããããšãæãŸããå ŽåããããŸãã
äžéæåºŠãš
倿ãåªå
ããŠããããã£ãã¢ãã¡ãŒãããããšã¯é¿ããŠãã ããã
div:hover { animation: move 1s forwards; } @keyframes move { 100% { margin-left: 100px; } } div:hover { transition: 1s; transform: translateX(100px); }
åäœ
ç¡æ¬¡å
ã®å€ã䜿çšããŸãã ãã¹ãŠãçžå¯Ÿåäœã§èšç®ããå Žåã¯ã
remã䜿çšããŠã¿ãŠãã ããã ããªç§ãããç§ã䜿çšããããšããå§ãããŸãã
div { margin: 0px; font-size: .9em; line-height: 22px; transition: 500ms; } div { margin: 0; font-size: .9rem; line-height: 1.5; transition: .5s; }
ã«ã©ãŒã¢ãã«
éææ§ãå¿
èŠãªå Žåã¯ã
rgbaã䜿çšã
ãŸã ã ãã以å€ã®å Žåã¯ãåžžã«16é²åœ¢åŒã䜿çšããŸãã
div { color: hsl(103, 54%, 43%); } div { color: #5a3; }
æç»
CSSã䜿çšããŠãªãœãŒã¹ãç°¡åã«åçã§ããå Žåã¯ãhttpãªã¯ãšã¹ããé¿ããŠãã ããã
div::before { content: url(white-circle.svg); } div::before { content: ""; display: block; width: 20px; height: 20px; border-radius: 50%; background: #fff; }
ã«ãŒãè²
ãããã䜿çšããªãã§ãã ããã
div { // position: relative; transform: translateZ(0); } div { will-change: transform; }
Javascript
æ§èœ
èªã¿ãããã衚çŸåè±ãã§ãæ£ããã³ãŒãã¯ãããã©ãŒãã³ã¹ãããéèŠã§ãã å®éãJavaScriptãããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ãªãããšã¯ãããŸããã ç»åå§çž®ãhttpãªã¯ãšã¹ããšãããã¯ãŒã¯ã¢ã¯ã»ã¹ã®æé©åãDOMããªãŒã®åèšç®ãªã©ã«æ³šæããããšããå§ãããŸãã ãã®èšäºã®æšå¥šäºé
ã®å°ãªããšã1ã€ãèŠããŠããå Žåã¯ãããã«äŸåããŠãã ããã
const arr = [1, 2, 3, 4]; const len = arr.length; var i = -1; var result = []; while (++i < len) { var n = arr[i]; if (n % 2 > 0) continue; result.push(n * n); } const arr = [1, 2, 3, 4]; const isEven = n => n % 2 == 0;
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
ç¢å°é¢æ°ãš
å埩é
åã¡ãœããå€éšããã®ç¬ç«
ç¡æã®æ©èœãäœæããŠã¿ãŠãã ããã ãã¹ãŠã®é¢æ°ãšã¡ãœããã¯ãçæ³çã«ã¯äºæ¬¡çãªæ§è³ªã®ãã®ã§ã¯ãªããå€éšããŒã¿ã«äŸåããå¿
èŠãããããã®çµæãæ°ãããªããžã§ã¯ããè¿ããæ¢åã®ãªããžã§ã¯ãã倿Žããªãã§ãã ããã
const merge = (target, ...sources) => Object.assign(target, ...sources); merge({ foo: "foo" }, { bar: "bar" });
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
æ®çãã©ã¡ãŒã¿ãŒãã€ãã£ã
å¯èœãªéãæšæºçãªæ¹æ³ã«äŸåããŠãã ããã
const toArray = obj => [].slice.call(obj); const toArray = (() => Array.from ? Array.from : obj => [].slice.call(obj) )();
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
é
åã®ãããªãªããžã§ã¯ãåŒ·å¶æ¯èŒ
äœåãªæ¯èŒã¯æå³ããªããªããããé¿ããŠãã ããã
if (x === undefined || x === null) { } if (x == undefined) { }
èªãã«ã¯ ïŒ
1.
nullããã³æªå®çŸ©ãšã®æ¯èŒãµã€ã¯ã«
ã«ãŒãã䜿çšããªãã§ãã ãããã«ãŒãã䜿çšãããšãå¯å€ãªããžã§ã¯ãã䜿çšããå¿
èŠããããŸãã Array.prototypeã¡ãœããã«äŸåããŸãã
const sum = arr => { var sum = 0; var i = -1; for (;arr[++i];) { sum += arr[i]; } return sum; }; sum([1, 2, 3]);
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
é
åå
ã®ãã¹ãŠã®å€ã®åèšArray.prototypeã¡ãœããã䜿çšã§ããªãå Žåã¯ãååž°ã䜿çšããŠ
ãã ãã ã
const createDivs = howMany => { while (howMany--) { document.body.insertAdjacentHTML("beforeend", "<div></div>"); } }; createDivs(5); const createDivs = howMany => [...Array(howMany)].forEach(() => document.body.insertAdjacentHTML("beforeend", "<div></div>") ); createDivs(5); const createDivs = howMany => { if (!howMany) return; document.body.insertAdjacentHTML("beforeend", "<div></div>"); return createDivs(howMany - 1); }; createDivs(5);
ååž°ã䜿ããããããäžè¬çãª
ã«ãŒã颿°ã次ã«ç€ºããŸãã
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã ïŒ
ãŸã㯠ïŒvs
è¯ã2.
insertAdjacentHTMLïŒïŒã¯innerHTMLïŒïŒãæäœãããããé«éã§ãåŒæ°
åŒæ°ããªããžã§ã¯ããšããŠå¿ããŠãã ããã æ®äœãã©ã¡ãŒã¿ãŒã¯ãåžžã«æè¯ã®ãªãã·ã§ã³ã§ãã
1.æž¡ãããååã¯ã颿°ãå
¥åã§äœãæåŸ
ãããã«ã€ããŠã®ããè¯ãã¢ã€ãã¢ãæäŸããŸã
2.æ®å·®ãã©ã¡ãŒã¿ãŒã¯é
åã§ããã䜿ããããã§ãã
const sortNumbers = () => Array.prototype.slice.call(arguments).sort(); const sortNumbers = (...numbers) => numbers.sort();
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
åŒæ°ãžã®ã¢ã¯ã»ã¹é©ç𿹿³ã®äœ¿çš
applyïŒïŒã¡ãœãããå¿ããŠãã ããã 代ããã«ãååžæŒç®åïŒé¢æ°åŒã³åºãïŒã䜿çšããŠãã ããã
const greet = (first, last) => `Hi ${first} ${last}`; const person = ["John", "Doe"]; greet.apply(null, person); greet(...person);
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
é
åžãªãã¬ãŒã¿ãŒbindã¡ãœããã®äœ¿çš
ããæ
£çšçãªã¢ãããŒããããå Žåã¯ãbindïŒïŒã䜿çšããªãã§ãã ããã
["foo", "bar"].forEach(func.bind(this)); ["foo", "bar"].forEach(func, this);
const person = { first: "John", last: "Doe", greet() { const full = function() { return `${this.first} ${this.last}`; }.bind(this); return `Hello ${full()}`; } } const person = { first: "John", last: "Doe", greet() { const full = () => `${this.first} ${this.last}`; return `Hello ${full()}`; } }
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
bindïŒïŒããã³JavaScriptã®
ã€ãã¬ãŒã¿ãŒé«éã¡ãœãã
ãã¹ãããã颿°ã¯ãå¿
èŠã®ãªãå Žæã§ã¯é¿ããŠãã ããã
const result = [1, 2, 3].map(num => String(num));
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
颿°ã䜿çšããŠæ°åã®é
åã衚瀺ããæ
è€æ°ã®ãã¹ãããã颿°åŒã³åºããé¿ããŸãã 代ããã«æ§æã䜿çšããŠãã ããã
const plus1 = a => a + 1; const mult2 = a => a * 2; mult2(plus1(5));
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ããã£ãã·ã³ã°
倧ããªããŒã¿æ§é ã䜿çšããã³ã¹ãã®ãããæäœã¯ããã£ãã·ã¥ããªãéãèš±ãããŸããã
const contains = (arr, value) => Array.prototype.includes ? arr.includes(value) : arr.some(el => el === value); contains(["foo", "bar"], "baz");
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
ããè¡ãå¥ã®è¡ã®å
åŽã«ãããã©ããã倿ã
ãé
åã®èŠçŽ ã®å€ã
ãã§ãã¯ããŸã倿°
letã®ä»£ããã«
constã䜿çšãã
varã®ä»£ããã«
letã䜿çšããŸãã
var me = new Map(); me.set("name", "Ben").set("country", "Belgium"); const me = new Map(); me.set("name", "Ben").set("country", "Belgium");
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
宿° ã
letæŒç®å ãããã³
飿³é
åã«ã€ããŠå°ã
æ¡ä»¶
IIFEã®ã³ã³ã»ããïŒå³åº§ã«å®è¡ããããã¡ã³ã¯ã¿ãŒïŒã«ã³ãããããæ¡ä»¶ã§æ»ãå€ã䜿çšããŸãïŒifãelse ifãelseãswitchïŒã
var grade, result = 50; if (result < 50) grade = "bad"; else if (result < 90) grade = "good"; else grade = "excellent";
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã ïŒ
ãŸã㯠ïŒ
2.
ããã«åŒã³åºããã颿°ã€ãã¬ãŒã¿
for ...ãé¿ãã
const shared = { foo: "foo" }; const obj = Object.create(shared, { bar: { value: "bar", enumerable: true } }); for (var prop in obj) { if (obj.hasOwnProperty(prop)) console.log(prop);
ã«ãŒããšã¡ãœããã®éãã¯ãã«ãŒãã«ãããã¿ã€ããã§ãŒã³ã®ããããã£ããªã¹ããããããšã§ãã
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
hasOwnPropertyã䜿çšããŠããããã£ã®ååšã確èªã ããªããžã§ã¯ãã® ããããã£ã
ãã€ãã¹ãã飿³é
åãšããŠã®ãªããžã§ã¯ã
ãªããžã§ã¯ãã¯åæ³çã«äœ¿çšã§ããŸãããååãšããŠã飿³é
åïŒ
Map ïŒã®æ¹ããã匷åã§åŒ·åã§ãã çãããå Žåã¯ã
Mapã䜿çš
ããŠãã ããã
const me = { name: "Ben", age: 30 }; var meSize = Object.keys(me).length; meSize;
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
ãã©ãŒã ããŒã®å€ãä¿åããããã®ã³ã¬ã¯ã·ã§ã³ïŒå€ã«ã¬ãŒ
ã«ãªãŒåã¯ãå€ãã®éçºè
ã«ãšã£ãŠåŒ·åã§ãããç°è³ªãªãã©ãã€ã ã§ãã èåŸ
ããªãã§ãã ããã
const sum = a => b => a + b; sum(5)(3);
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
ã«ã¬ãŒãš
äŸèªã¿ããã
ã¹ããŒãããªãã¯ã䜿çšããŠã³ãŒãã®æå³ãé ããªãã§ãã ããã
foo || doSomething(); void function() { }(); const n = ~~3.14; if (!foo) doSomething(); (function() { }()); const n = Math.floor(3.14);
èªãã«ã¯ ïŒ
1.
å®å
šãªã³ãŒããšå³ããçŸå®ã«ã€ããŠã³ãŒãã®åå©çš
å€ãã®å°ãããŠåå©çšå¯èœãªé¢æ°ãäœæããããšãæããªãã§ãã ããããããã¯éåžžã«äŸ¿å©ã§ãã
let last = arr[arr.length - 1]; const product = (a, b) => a * b; const triple = n => n * 3; const first = arr => arr[0];
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ãäŸåé¢ä¿
ä»çµã¿ãããããªãå Žåã¯ããµãŒãããŒãã£ã®ã³ãŒãã®äŸåé¢ä¿ãæå°éã«æããŸãã ç°¡åã«åçŸå¯èœãªããã€ãã®ã¡ãœããã®ã©ã€ãã©ãªå
šäœãããŠã³ããŒãããå¿
èŠã¯ãããŸããã
var _ = require("underscore"); _.compact(["foo", 0])); _.unique(["foo", "foo"]); _.union(["foo"], ["bar"], ["foo"]); const compact = arr => arr.filter(el => el); const unique = arr => [...Set(arr)]; const union = (...arr) => unique([].concat(...arr)); compact(["foo", 0]); unique(["foo", "foo"]); union(["foo"], ["bar"], ["foo"]);
èªãã«ã¯ ïŒ
1. BabeljsïŒES5ã®äŸïŒïŒ
æªã vs
è¯ã2.
JavaScriptã¢ãžã¥ãŒã«ãã¹ãš
ã¢ã³ããŒã¹ã³ã¢ã©ã€ãã©ãªã®ããã¥ã¡ã³ã