JavaScriptãæã¤ã2ã¤ã®åãã®åä½ãå³ã§è§£èª¬ãã¾ãããªãã¸ã§ã¯ãåã§ã¯ãåç §ãã«ã¤ãã¦ã確èªãã¦ããã¾ããããã¤ã¡ã¼ã¸ãããã¨ãé£ãããããã¯ã§ãããçè§£ãæ·±ããã¨ãä¸å®ãªãã³ã¼ããæ¸ããã¨ãã§ãã¾ãã
ä»åã®å¦ã³
- JavaScriptãæã¤åã¯ãï¼ç¨®é¡
- ãããªããã£ãåãã¨ããªãã¸ã§ã¯ãåãã®åä½ã®ç¹å¾´
- ãã¹ããããã颿°ã®å¼æ°ã«ããåä½
å¥ç´ç¤¾å¡ã客å¡ç ç©¶å¡ãããªã¼ã©ã³ã¹ãªã©ãã¾ãã¾ãªç«å ´ã§éçºç¾å ´ãçµé¨ãããã³ãã¨ã³ããããã¯ã¨ã³ãéçºããã¼ã ãªã¼ããOJTã®è²ææ å½ã¾ã§å¹ åºãããªãã¦ãããç¾å¨ããã°ã©ãã³ã°ãã¬ã¼ãã³ã°äºæ¥ãè¡ããµã¼ã¯ã«ã¢ã©ã¦ã³ãæ ªå¼ä¼ç¤¾ãç«ã¡ä¸ããçµå¶ãç¾å ´éçºãè¡ããªããOJTçµé¨ããã¨ã«å¾é²ã®è²æã«å±ã¿ãåäººãæ³äººã«åããããã°ã©ãã³ã°ã®ãã¬ã¼ãã³ã°ãè¡ã£ã¦ããããã¦ãã¦ã®ã³ã³ãã³ãåã«ãåãçµãã§ãããèæ¸ã«ãã¹ãããã¢ããJavaScriptãï¼ç¿æ³³ç¤¾ï¼ãããã
ï¼è¨äºå
ã«ä½¿ç¨ãã¦ãããµã³ãã«ã³ã¼ãã¯ã以ä¸ããã確èªã§ãã¾ã
https://github.com/CircleAround/engineer_style_js/blob/main/06/06_type.js
JavaScriptã«ãããï¼ã¤ã®å
JavaScriptã«ãããåã¯ã大ããåããã¨ä»¥ä¸ã®2種é¡ã§ãã
ä»£å ¥ãæä½æã®åä½ã«éãããããããããããã®ç¹å¾´ãæ±ãæ¹ã確èªãã¦ããã¾ããããæ´çãã¦ãããªãã¨ãæãã¬èª¤ãã«ç¹ãããã¨ããæ³¨æãå¿ è¦ã§ãã
ããªããã£ãå
ããªããã£ãåã®ãã¨ãçè§£ããããã«ãã¾ãã¯æååãä¾ã«è¦ã¦ããã¾ãããããã®ã»ãã®ããªããã£ãåãåæ§ã®æ§è³ªãæã¤ã¨èãã¦ããã§ãã
let str1 = 'Hello'; // *1
const str2 = str1; // *2
console.log(str1, str2); // => Hello Hello
ç°¡åãªã³ã¼ãã§ããstr1ããstr2ã¸æååãä»£å ¥ãã¾ããï¼â»2ï¼ããã®ã¨ããstr2ã«ã¯str1ã®æååã®ã³ãã¼ãä½ããã¾ãããã¡ãã2ã¤ã®æååã®ä¸èº«ã¯åããã®ã§ãã
ç¶ã㦠str1.concatã使ã£ã¦ãã®çµæãæ¹ãã¦str1ã«ä»£å ¥ãã¾ãï¼â»3ï¼ã
str1.concatã§str1ãã®ãã®ã夿´ããããã¨ã¯ãªããæ°ããæååãçæããã¦æ»ãå¤ã¨ãªãã¾ãã
str1 = str1.concat('World'); // *3
// 以ä¸ã®äºã¤ã¯éãå¤ã示ãã¦ãã
console.log(str1, str2); // => HelloWorld Hello
str1ã¨str2ã¯ç¡é¢ä¿ã®ãããstr1ã ããæ°ããªå¤ã«ãªãã¾ããã
ããã¾ã§ãå¹¾ã¤ãã®ç°¡åãªæä½ãè¡ãã¾ããã以ä¸ã®3ã¤ã®ãã¤ã³ãã確èªãã¦ããã¾ãããã
ã1ã
â»1 ã§ã¡ã¢ãªä¸ã«ä½ããã âHelloâ ã®æååã®å
å®¹ã¯æå¾ã¾ã§å¤æ´ãããªã
ã2ã
â»2 ã®ä»£å
¥ã§ã¯å
容ã®ã³ãã¼ãèµ·ãã¦ãã
ã3ã
â»3 ã®ã¡ã½ããã®æä½ã«ããã¦ãã¡ã¢ãªä¸ã«æ°ãã«âHello Worldâã®æååãä½ãããâHelloâ ã¯å¤æ´ãããªã
ãã®åä½ã¯çæãããå®ä½ã夿´ãããªããImmutableã®åä½ã§ããããªããã£ãåã¯ãã®ãããªImmutableæ§ãç¹å¾´ã¨ãã¾ããå¤ãã®ä»ã®è¨èªã§ãæååã¯ãã®ãããªImmutableãªåä½ããããã¨ãå¤ãã§ãã
ï¼ä»¥ä¸ã®åä½ã¯ãå é¨å®è£ ã®è©³ç´°ãæé©åãªã©ãèããã¨å³å¯ã«ã¯éãåä½ããã¦ããå¯è½æ§ãããã¾ãããããã°ã©ã ãèªã¿æ¸ãããéã«ããã®èãæ¹ã§çç¾ããªãããä½ããã¦ãã¾ã
ããªããã£ãåã®æ§è³ª
ã»å¤æ°ã®ä»£å ¥ã®æã«æ°ããã¡ã¢ãªé åã確ä¿ãããã³ãã¼ããè¡ãããå¥ã®å®ä½ã¨ãã¦æ±ããã
ã»Immutableã®æ§è³ªãããã®ã§ãç·¨éæä½ã§ã¯æ°ããå®ä½ã使ãã
ãªãã¸ã§ã¯ãå
次ã¯ãªãã¸ã§ã¯ãåã®åä½ã«ã¤ãã¦ã§ããå ·ä½çãªã³ã¼ããè¦ãåã«ãåç §ãã«ã¤ãã¦ç¢ºèªãã¦ããã¾ãããã
â ãåç §ã
ã¡ã¢ãªå ã«ãããªãã¸ã§ã¯ããæã示ãããã®IDã¨ãã¦ä½¿ãããå¤ã§ãããªãã¸ã§ã¯ãåãæ±ãå ´åã«ã¯ã夿°ã«ã¯åç §ãä»£å ¥ããã¦ãã¦ããã®åç §ãä»ãã¦ãªãã¸ã§ã¯ãã®å®ä½ãæä½ãã¾ãã
const obj1 = {message: "Hello"};
ä¾ãã°ä¸è¨ã®ãããªå®£è¨ãããã¨ã以ä¸ã®ãããªã¤ã¡ã¼ã¸ã§æ å ±ãä½ããã¾ãã
â ãªãã¸ã§ã¯ãã®æä½ã¯ãåç §ããä»ãã¦ãã
const obj1 = {message: "Hello"}; // *1
const obj2 = obj1; // *2
obj1ãobj2ã¸ä»£å ¥ãã¾ããï¼â»2ï¼ããã®ã¨ãä»£å ¥ãããã®ã¯ãåç §ããªã®ã§ãobj1ã¨obj2ã¯åç §ãä»ãã¦ãâ»1ã§çæãããåä¸ã®ãªãã¸ã§ã¯ããæãã¦ãã¾ãã
ç¶ãã¦obj1ã®messageã®å¤ã夿´ãã¾ããããã®ã¨ããåç §ããä»ãã¦â»1ã§çæããããªãã¸ã§ã¯ãã夿´ããã¾ãã
obj1.message = "Hi"; // *3
console.log(obj2.message); // => Hi
çµæãåä¸ã®ãªãã¸ã§ã¯ãã¸ã®åç §ãæã¤obj2ã®messageã夿´ããã¾ããã
ãªãã¸ã§ã¯ãåã®æ§è³ª
ã»å¤æ°ã®ä»£å ¥ã«ã¯ãåç §ã®ã³ãã¼ãè¡ãããåãå®ä½ãå ±æãã
ã»ç·¨éæä½ã§ã¯æ°ããå®ä½ã使ãããèªèº«ã夿´ããã(ãªãã¸ã§ã¯ãåã§ã工夫ãããã¨ã§Immutableã«ã§ããããåºæ¬çã«ã¯Mutable)
ãã¹ããããã颿°ã®å¼æ°ã«ãããåä½
ããªããã£ãåããªãã¸ã§ã¯ãåã®ä»£å ¥ã«ã¤ãã¦æ´çã§ãã¦ããªãã¨ã以ä¸ã®ãããªã±ã¼ã¹ã§åéããã¦ãã¾ããã¨ãããã¾ããã颿°ã®å¼æ°ã«æ¸¡ãã¨ãã«ãä»£å ¥ãèµ·ãã¦ãããã¨èããã¨ããããããã§ãããã
function concatWorld(str) {
str = str.concat('World'); // str1ãã 'HelloWorld'ã«ãªãããã«æããããããªã
}
const str1 = 'Hello';
concatWorld(str1);
console.log(str1); // => 'Hello' // 夿´ã¯ãããªã
ä¸è¨ã®ã³ã¼ãã§ã¯ãstr1ã®æã夿°ã®å¤ã¯å¤æ´ããããã¨ã¯ããã¾ãããconcatWorld颿°ã®å¼æ°ã«æ¸¡ãããã®ã¯str1ã®ã³ãã¼ã§ããããã§ããã³ãã¼ãæä½ããã¨ãã¦ãã³ãã¼å ã«ã¯å¤æ´ãåæ ããã¾ããã
ä»åã®ã¾ã¨ã
- JavaScriptã«ãããï¼ã¤ã®åã¯ãããªããã£ãåã¨ãªãã¸ã§ã¯ãå
- ããªããã£ãåã¯ãçæãããå®ä½ã夿´ãããªããImmutableã®æ§è³ªããã
- ãªãã¸ã§ã¯ãåã¯ãç·¨éæä½ã§ã¯æ°ããå®ä½ã使ããèªèº«ã夿´ãããMutableã®æ§è³ªããã
JavaScriptã§ã¹ãããã¢ãããç®æãæ¹ã¸
è¨6åã®é£è¼ããèªã¿ããã ããããã¨ããããã¾ããã
JavaScriptã¯åºæ¬ã®ææ³ããããããã䏿¹ã§ãè¥å¹²çã®ããè¨èªã ã¨ãæãã¾ããå ãã¦ãéå»ã®å®è£ ãå«ãã¦ãã©ã¦ã¶ä¸ã§åä½ãããã¨ããå¶ç´ããããããå¤ã仿§ããã£ã¨æ®ãç¶ãããåããã¨ã表ç¾ããã®ã«ããã¾ãã¾ãªæ¹æ³ãããããããªç¶æ ã«ãªãã¾ããã
ã調ã¹ãæ¸ãæ¹ããç¾å¨ãæ¨å¥¨ãããæ¸ãæ¹ãªã®ããããããããªããã¨ãå¤ã ããã¾ãããã®ãããªèæ¯ãããè¨èªãæ±ãå§ããããã¯ãçè§£ã«è¦ãããã¨ãå¤ãã§ãããã
æ¬é£è¼ã®ä¸ã§ã¯ãç¹ã«ã¤ã¾ããããããã¤ã³ããæ´çããã¤ããã§ãã®ã§ãä¸ã¤ãã¤çè§£ãã¦ããã¨ãèªä¿¡ãæã£ã¦ã³ã¼ããæ¸ãããã¨ãå¢ããã¨æãã¾ãã
ç¹ã«ãéåæå¦çãã®ãããªãåä½ã®è³å ã¤ã¡ã¼ã¸ãéè¦ã ã¨èããç®æã«ã¯ãå³ãå¤ãã«ç¨ãã¦ãã³ã¼ããæ¸ãã¦ããã¨ãã®ç§ã®è³å ã¤ã¡ã¼ã¸ãä¼ãããã¨ãã£ã¬ã³ã¸ãã¾ããããã¾ãä¼ãã£ã¦ãããå¬ããã§ãã
ã¾ããåä½ããã³ã¼ãããªãã¹ããªã³ã¯ãã¾ããã®ã§ããã²å®éã®åä½ã追ã£ã¦ãè¡èã«ãã¦ããã ãããã§ãã
é£è¼ããã£ã¨ã覧ããã ããæ¹ããæ¹ãã¦æåããèªã¿ç´ããªã©ãã¦ããã ãã¨ãç¥èãå®çãã¦ä¸æã«ä½¿ããããã«ãªããã¨ãããã¨æãã¾ãã以ä¸ã®ãªã³ã¯ããæ¹ãã¦ã覧ããã ããã°å¹¸ãã§ãã
â¼JavaScriptãå¦ã¶ä¸ã§ã¤ã¾ããããããã¤ã³ããçè§£ããããã®é£è¼
ã»JSç¹æã®ãthisãã®ä½¿ãæ¹6ã¤ãããããã
ã»2ã¤ã®å©ç¨ã·ã¼ã³ããçè§£ãããã¯ãã¼ã¸ã£ãæ´»ç¨æ³
ã»å®è¡å¦çã®å³ãè¦ã¦ãéåæå¦çãã«ã¤ãã¦ç¥ãã
ã»Promiseãçè§£ãasync/await ã§èªã¿ããããéåæå¦çããæ¸ã
ã»Ajaxã®å©ç¹ãæ¸ãæ¹