ãã®ãã¼ã¸ã§ã¯ã JavaScript ã§ã®å奿æ³ã説æãã¾ããJavaScript ã®ã½ã¼ã¹ããã¹ãã¯ãåãªãæåã®åã§ãããããã¤ã³ã¿ã¼ããªã¿ã¼ã«çè§£ãããããã«ã¯ãæååãããæ§é åããã表ç¾ã«è§£éãããå¿ è¦ãããã¾ããæ§æè§£æã®æåã®æé ã¯åå¥è§£æã¨å¼ã°ããããã¹ããå·¦ããå³ã¸ã¹ãã£ã³ãã¦ãåã ã®ååçãªå ¥åè¦ç´ ã®åã«å¤æãã¾ããä¸é¨ã®å ¥åè¦ç´ ãä¾ãã°ãã¯ã¤ãã¹ãã¼ã¹ãã³ã¡ã³ãã¯ã¤ã³ã¿ã¼ããªã¿ã¼ã«ã¨ã£ã¦éè¦ã§ã¯ãªãã®ã§ããã®æé ã®å¾ã§åãé¤ããã¾ãããã以å¤ã®ãä¾ãã°èå¥åããã¼ã¯ã¼ãããªãã©ã«ãåºåãè¨å·ï¼ä¸»ã«æ¼ç®åï¼ã¯ããã®å¾ã®æ§æè§£æã«ä½¿ç¨ãã¾ããæ¹è¡æåãè¤æ°è¡ã®ã³ã¡ã³ããæ§æçã«ã¯éè¦ã§ã¯ããã¾ãããã䏿£ãªãã¼ã¯ã³åãæå¹ã«ããããã«èªåã»ãã³ãã³æ¿å ¥ã®å¦çã®ã¬ã¤ãã¨ãªãã¾ãã
æ¸å¼åå¶å¾¡æåæ¸å¼åå¶å¾¡æåã¯ãè¦è¦ç表ç¾ãæãã¦ããªããã®ã®ãããã¹ãã®è§£éãå¶å¾¡ããããã«ä½¿ç¨ããã¾ãã
ã³ã¼ããã¤ã³ã åå ç¥èª 説æ U+200C Zero width non-joiner <ZWNJ> ç¹å®ã®è¨èªã«ããã¦ãååã«æ¥åããããã¨ãé²ãããã«ãæåã®éã«é ç½®ããã¾ãã(Wikipedia) U+200D Zero width joiner <ZWJ> ç¹å®ã®è¨èªã«ããã¦ãéå¸¸ã¯æ¥åãããªãæåããæ¥åããå½¢ã使ç¨ãã¦æåã表示ããããã«æåéã«é ç½®ããã¾ãã (Wikipedia) U+FEFF Byte order mark <BOM> è¨è¿°ã®å é ã«ããã¦ã Unicode ã使ç¨ãããã¨ããã¼ã¯ããããã¹ãã®ã¨ã³ã³ã¼ãã£ã³ã°ã¨ãã¤ãé ãæ¤åºã§ããããã«ãã¾ãã (Wikipedia)JavaScriptã®ã½ã¼ã¹ããã¹ãã§ã¯ã <ZWNJ> 㨠<ZWJ> ã¯èå¥åé¨åã¨ãã¦æ±ããã <BOM> ï¼ããã¹ãã®å é ã«ãªãå ´åã¯ã¼ãå¹ ã®ãã¼ãã¬ã¼ã¯ã¹ãã¼ã¹ <ZWNBSP> ã¨ãå¼ã°ãã¾ãï¼ã¯ãã¯ã¤ãã¹ãã¼ã¹ã¨ãã¦æ±ããã¾ãã
ãã¯ã¤ãã¹ãã¼ã¹ãã¯ã¤ãã¹ãã¼ã¹ã¯ã½ã¼ã¹ã®ããã¹ãã®èªã¿ããããåä¸ããããã¼ã¯ã³ãäºãã«åºå¥ãã¾ãããããã®æåã¯é常ãã³ã¼ãã®æ©è½æ§ã«ã¯ä¸è¦ãªãã®ã§ãããã Minification tools ã使ç¨ãã¦ã転éããå¿ è¦ããããã¼ã¿ã®éã忏ããããã«ãã¯ã¤ãã¹ãã¼ã¹ãé¤å»ãã¾ãã
ã³ã¼ããã¤ã³ã åå ç¥èª 説æ ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ U+0009 æååä½ã®ã¿ã <TAB> æ°´å¹³ã¿ã \t U+000B è¡åä½ã®ã¿ã <VT> åç´ã¿ã \v U+000C ãã©ã¼ã ãã£ã¼ã <FF> æ¹ãã¼ã¸ã®å¶å¾¡æå (Wikipedia) \f U+0020 ç©ºç½ <SP> é常ã®ç©ºç½ U+00A0 ãã¼ãã¬ã¼ã¯ã¹ãã¼ã¹ <NBSP> é常ã®ç©ºç½ã ããæ¹è¡ãè¡ã£ã¦ããä½ç½®ã§ã¯ãªã U+FEFF ã¼ãå¹ ãã¼ãã¬ã¼ã¯ã¹ãã¼ã¹ <ZWNBSP> When not at the start of a script, the BOM marker is a normal whitespace character. ãã®ä» ä»ã® Unicode ã®ç©ºç½æå <USP> "Space_Separator" ä¸è¬ã«ãã´ãªã¼ã®æåã¡ã¢: "White_Space" ããããã£ãããã "Space_Separator" ä¸è¬ã«ãã´ãªã¼ã«ãªãæåã®ãã¡ã U+0009, U+000B, U+000C 㯠JavaScript ã§ããã¯ã¤ãã¹ãã¼ã¹ã¨ãã¦æ±ããã U+0085 NEXT LINE ã¯ç¹å¥ãªå½¹å²ãæãããä»ã«ãæ¹è¡æåã®éåã¨ãªããã®ãããã¾ãã
ã¡ã¢: JavaScript ã¨ã³ã¸ã³ã§ä½¿ç¨ããã Unicode è¦æ ¼ã夿´ãããã¨ãããã°ã©ã ã®åä½ã«å½±é¿ãä¸ããå¯è½æ§ãããã¾ããä¾ãã°ã ES2016 ã§ã¯åç §ãã Unicode è¦æ ¼ã 5.1 ãã 8.0.0 ã«ã¢ããã°ã¬ã¼ãããããã®å½±é¿ã§ U+180E MONGOLIAN VOWEL SEPARATOR ã "Space_Separator" ã«ãã´ãªã¼ãããæ¸å¼åï¼Cfï¼ãã«ãã´ãªã¼ã«ç§»åãã空ç½ã§ãªããªã£ã¦ãã¾ãããã®çµæã" \u180E".trim().length ã®çµæã 0 ãã 1 ã«å¤æ´ããã¾ããã
æ¹è¡æåãã¯ã¤ãã¹ãã¼ã¹æåã«å ãã¦ãæ¹è¡æåãã½ã¼ã¹ã®ããã¹ãã®èªã¿ããããæ¹åããããã«ä½¿ç¨ããã¾ããããããæ¹è¡æå㯠JavaScript ã®å®è¡ã«å½±é¿ãä¸ããå ´åããããç¦æ¢ããã¦ããå ´æãããããããã¾ããæ¹è¡æåã¯èªåã»ãã³ãã³æ¿å ¥ã®å¦çã«ãå½±é¿ãä¸ãã¾ãã
å奿æ³ã®ã³ã³ããã¹ã以å¤ã§ã¯ããã¯ã¤ãã¹ãã¼ã¹ã¨æ¹è¡æåã¯ãã°ãã°åä¸è¦ããã¾ããä¾ãã°ãString.prototype.trim()
ã¯æååã®æåã¨æå¾ãããã¹ã¦ã®ãã¯ã¤ãã¹ãã¼ã¹ã¨æ¹è¡æåãé¤å»ãã¾ããæ£è¦è¡¨ç¾ã«ããã \s
æåã¯ã©ã¹ã¨ã¹ã±ã¼ãã¯ããã¹ã¦ã®ãã¯ã¤ãã¹ãã¼ã¹ã¨æ¹è¡æåã«ä¸è´ãã¾ãã
以ä¸ã® Unicode ã³ã¼ããã¤ã³ãã®ã¿ã ECMAScript ã§ã¯æ¹è¡æåã¨ãã¦æ±ãããä»ã®æ¹è¡æåã¯ãã¯ã¤ãã¹ãã¼ã¹ã¨ãã¦æ±ããã¾ã (ä¾ãã°ã次ã®è¡ã NELã U+0085 ã¯ãã¯ã¤ãã¹ãã¼ã¹ã¨è¦ãªããã¾ã)ã
ã³ã¼ããã¤ã³ã åå ç¥èª 説æ ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ U+000A ã©ã¤ã³ãã£ã¼ã <LF> UNIX ã·ã¹ãã ã§ã®æ¹è¡æåã§ãã \n U+000D ãã£ãªãã¸ãªã¿ã¼ã³ <CR> ã³ã¢ãã¼ã«ã¨åæã® Mac ã·ã¹ãã ã§ã®æ¹è¡æåã§ãã \r U+2028 ã©ã¤ã³ã»ãã¬ã¼ã¿ã¼ <LS> ã¦ã£ãããã£ã¢ U+2029 æ¹æ®µè½ <PS> ã¦ã£ãããã£ã¢ ã³ã¡ã³ãã³ã¡ã³ãã¯ããã³ããã¡ã¢ãææ¡ãè¦åã JavaScript ã®ã³ã¼ãã«è¿½å ããããã«ä½¿ç¨ããã¾ããããã«ãããã³ã¼ããããèªã¿ããããããçè§£ãããããã®ãªãã¾ããã¾ããã³ã¼ããå®è¡ãããªãããç¡å¹ã«ããããã«ä½¿ç¨ãããã¨ãã§ãã¾ããããã¯ãè²´éãªãããã°ãã¼ã«ã«ãªããã¨ãããã¾ãã
JavaScript ã«ã¯ãã³ã¼ãå ã«ã³ã¡ã³ããå²ãå½ã¦ãæ¹æ³ã 2 ã¤ããã¾ãã
è¡ã³ã¡ã³ã1 çªç®ã®æ¹æ³ã¯ //
ã³ã¡ã³ãã§ããã¤ã¾ããããã¯åãè¡ã«ããããã®å¾ã®ãã¹ã¦ã®ããã¹ããã³ã¡ã³ãã«ãã¾ããä¾ãã°ã
function comment() {
// This is a one line JavaScript comment
console.log("Hello world!");
}
comment();
ãããã¯ã³ã¡ã³ã
2 çªç®ã®æ¹æ³ã¯ /* */
ã¹ã¿ã¤ã«ã§ããã£ã¨ãã£ã¨æè»ãªãã®ã§ãã
ä¾ãã°ãåä¸è¡ã«å©ç¨ããå ´åã¯æ¬¡ã®ããã«ãªãã¾ãã
function comment() {
/* This is a one line JavaScript comment */
console.log("Hello world!");
}
comment();
è¤æ°è¡ã®ã³ã¡ã³ããä¸è¨ã®ããã«ä½æãããã¨ãã§ãã¾ãã
function comment() {
/* This comment spans multiple lines. Notice
that we don't need to end the comment until we're done. */
console.log("Hello world!");
}
comment();
å¿ è¦ã§ããã°ãè¡ã®éä¸ã§ã³ã¡ã³ãã使ç¨ãããã¨ãã§ãã¾ãããããã¯ã³ã¼ããèªã¿ã«ãããªããã¨ãããã®ã§æ³¨æãå¿ è¦ã§ãã
function comment(x) {
console.log("Hello " + x /* insert the value of x */ + " !");
}
comment("world");
ã¾ããã³ã¼ããã³ã¡ã³ãã§å²ããã¨ã§ãã³ã¼ããå®è¡ãããªãããç¡å¹ã«ãããã¨ãã§ãã¾ãã
function comment() {
/* console.log("Hello world!"); */
}
comment();
ãã®å ´åã console.log()
ã®å¼ã³åºãã¯ã³ã¡ã³ãå
é¨ã«ããã®ã§ãå®è¡ããããã¨ã¯ããã¾ãããä½è¡åã®ã³ã¼ãã§ãã£ã¦ãããã®ããã«ãã¦ç¡å¹ã«ãããã¨ãã§ãã¾ãã
å°ãªãã¨ã 1 ã¤ã®æ¹è¡æåãå«ããããã¯ã³ã¡ã³ãã¯ãèªåã»ãã³ãã³æ¿å ¥ã«ããã¦æ¹è¡æåã®ããã«åä½ãã¾ãã
ããã·ã¥ãã³ã³ã¡ã³ãç¹å¥ãª 3 ã¤ç®ã®ã³ã¡ã³ãæ§æã¨ãã¦ããã·ã¥ãã³ã³ã¡ã³ããããã¾ããããã·ã¥ãã³ã³ã¡ã³ãã¯ã #!
ã§å§ã¾ããã¨ã¨ãã¹ã¯ãªãããã¢ã¸ã¥ã¼ã«ã®çµ¶å¯¾çãªéå§ä½ç½®ã§ã®ã¿æå¹ã§ãããã¨ãé¤ãã¦ãåä¸ã®è¡ã®ã¿ (//
) ã®ã³ã¡ã³ãã¨å
¨ãåãããã«åä½ãã¾ãããªãã #!
ã®åã«ã¯ãããªã種é¡ã®ç©ºç½ã許ãããªããã¨ã«ã注æãã¦ãã ãããã³ã¡ã³ã㯠#!
以éã®æåã®è¡ã®çµããã¾ã§ã®ãã¹ã¦ã®æåã§æ§æããããã®ãããªã³ã¡ã³ã㯠1 ã¤ã ã許å¯ããã¾ãã
JavaScriptã§ã®ããã·ã¥ãã³ã³ã¡ã³ã㯠Unix ã«ãããã·ãã³ã«ä¼¼ã¦ãã¦ãã¹ã¯ãªãããå®è¡ããããã«ä½¿ç¨ãããç¹å®ã® JavaScript ã¤ã³ã¿ã¼ããªã¿ã¼ã¸ã®ãã¹ãæå®ãã¾ããããã·ã¥ãã³ã³ã¡ã³ããæ¨æºåãããåã«ã Node.js ã®ãããªãã©ã¦ã¶ã¼ä»¥å¤ã®ãã¹ãã§ã¯ãã§ã«ããã¡ã¯ãã¨ãã¦å®è£ ããã¦ãããã¨ã³ã¸ã³ã«æ¸¡ãããåã«ã½ã¼ã¹ããã¹ãããåãé¤ãããããã«ãªã£ã¦ãã¾ãããä¾ã¨ãã¦ä»¥ä¸ã®ãããªãã®ãããã¾ãã
#!/usr/bin/env node
console.log("Hello world");
JavaScript ã¤ã³ã¿ã¼ããªã¿ã¼ã¯ãããé常ã®ã³ã¡ã³ãã¨ãã¦æ±ãã¾ããã¹ã¯ãªãããç´æ¥ã·ã§ã«ã§å®è¡ãããå ´åã®ã¿ãã·ã§ã«ã«å¯¾ãã¦æå³ãæã¡ã¾ãã
è¦å: ã¹ã¯ãªãããã·ã§ã«ç°å¢ã§ç´æ¥å®è¡ã§ããããã«ãããå ´åã¯ã BOM ã®ãªã UTF-8 ã§ã¨ã³ã³ã¼ããã¦ãã ããããã©ã¦ã¶ã¼ã§å®è¡ããã³ã¼ãã§ã¯ BOM ã¯ä½ã®åé¡ãèµ·ããã¾ããã - UTF-8 ãã³ã¼ãã®éãã½ã¼ã¹ããã¹ããè§£æãããåã«åãé¤ãããããã§ã - Unix/Linux ã®ã·ã§ã«ã§ã¯ãBOM æåãåã«ããã¨ããã·ã¥ãã³ãèªèãã¾ããã
#!
ã®å½¢ã®ã³ã¡ã³ã㯠JavaScript ã¤ã³ã¿ã¼ããªã¿ã¼ãæå®ããããã«ã ã使ç¨ãã¦ãã ãããä»ã®ç¨éã§ã¯ãã¹ã¦ //
ã®ã³ã¡ã³ãï¼ã¾ãã¯è¤æ°è¡ã³ã¡ã³ãï¼ã使ç¨ãã¦ãã ããã
èå¥å ã¯ãå¤ã¨ååããªã³ã¯ãããããã«ä½¿ç¨ããã¾ããèå¥åã¯æ§ã ãªå ´æã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
const decl = 1; // 夿°å®£è¨ï¼`let` ã¾ã㯠`var` ãå¯ï¼
function fn() {} // 颿°å®£è¨
const obj = { key: "value" }; // ãªãã¸ã§ã¯ããã¼
// ã¯ã©ã¹å®£è¨
class C {
#priv = "value"; // ãã©ã¤ãã¼ããã£ã¼ã«ã
}
lbl: console.log(1); // ã©ãã«
JavaScript ã§ã¯ãèå¥åã¯ä¸è¬çã«è±æ°åãã¢ã³ãã¼ã¹ã³ã¢ (_
)ããã«è¨å· ($
) ã§æ§æããã¾ããèå¥åã¯æ°åã§å§ãããã¨ã¯ã§ãã¾ãããããããJavaScript ã§ä½¿ç¨ã§ããèå¥å㯠ASCII ã ãã§ã¯ãªããã»ã¨ãã©ã® Unicode ã³ã¼ããã¤ã³ãã使ç¨å¯è½ã§ãã
_
ã $
ã使ç¨ãããã¨ãã§ãã¾ããã¡ã¢: ããä½ããã®çç±ã§ JavaScript ã®ã½ã¼ã¹ãèªåã§æ§æè§£æããå¿
è¦ãããå ´åããã¹ã¦ã®èå¥åã /[A-Za-z_$][\w$]*/
ã®ãã¿ã¼ã³ã«å¾ã£ã¦ããï¼ã¤ã¾ã ASCII ã®ã¿ã§ããï¼ã¨ä»®å®ããªãã§ãã ããã èå¥åã®ç¯å²ã¯æ£è¦è¡¨ç¾ /[$_\p{ID_Start}][$\p{ID_Continue}]*/u
ï¼Unicode ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãé¤ãï¼ã§è¨è¿°ãããã¨ãã§ãã¾ãã
ã¾ããJavaScript ã§ã¯ãèå¥åã®ä¸ã§ Unicode ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã \u0000
ã¾ã㯠\u{000000}
ã¨ããå½¢å¼ã§ä½¿ç¨ãããã¨ãã§ããããã¯å®éã® Unicode æåã¨åãæååå¤ãã¨ã³ã³ã¼ããããã®ã§ããä¾ãã°ãä½ å¥½
㨠\u4f60\u597d
ã¯åãèå¥åã§ãã
const ä½ å¥½ = "Hello";
console.log(\u4f60\u597d); // Hello
ãã¹ã¦ã®å ´æã§ããã¹ã¦ã®ç¯å²ã®èå¥åãåãå ¥ããããããã§ã¯ããã¾ããã颿°å®£è¨ã颿°å¼ã夿°å®£è¨ãªã©ã®ç¹å®ã®æ§æã§ã¯ãäºç´èªã§ãªãèå¥ååã使ç¨ããå¿ è¦ãããã¾ãã
function import() {} // éå: import ã¯äºç´èªã§ãã
æã注ç®ãã¹ãã¯ããã©ã¤ãã¼ãè¦ç´ ã¨ãªãã¸ã§ã¯ãããããã£ã¯ãäºç´èªã許å¯ãã¦ãããã¨ã§ãã
const obj = { import: "value" }; // `import` ã¯äºç´èªã ãæå¹
class C {
#import = "value";
}
ãã¼ã¯ã¼ã
ãã¼ã¯ã¼ã ã¯èå¥åã®ããã«è¦ãã¾ããã JavaScript ã§ç¹å¥ãªæå³ãæã¤ãã¼ã¯ã³ã§ããä¾ãã°ã颿°å®£è¨ã®åã®ãã¼ã¯ã¼ã async
ã¯ããã®é¢æ°ãéåæã§ãããã¨ã示ãã¾ãã
ãã¼ã¯ã¼ãã®ä¸ã«ã¯äºç´ããã¦ãããã®ãããã夿°å®£è¨ã颿°å®£è¨ãªã©ã®èå¥åã¨ãã¦ä½¿ç¨ãããã¨ãã§ããªããã¨ãæå³ãã¾ãããããã¯ããäºç´èªã¨å¼ã°ãã¾ããäºç´èªã®ä¸è¦§ã¯ä¸è¨ã«æ²è¼ããã¦ãã¾ãããã¹ã¦ã®ãã¼ã¯ã¼ããäºç´ããã¦ããããã§ã¯ããã¾ãããä¾ãã°ã async
ã¯ã©ãã§ãèå¥åã¨ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ããä¸é¨ã®ãã¼ã¯ã¼ãã¯æèçãªäºç´èªã§ããä¾ãã°ã await
ã¯éåæé¢æ°ã®æ¬ä½ã§ã®ã¿ã let
ã¯å³æ ¼ã¢ã¼ãã®ã³ã¼ããã¾ã㯠const
ããã³ let
宣è¨ã§ã®ã¿äºç´ããã¦ãã¾ãã
èå¥åã¯å¸¸ã« æååå¤ ã§æ¯è¼ããããããã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯è§£éããã¾ããä¾ãã°ããã®ãããªå ´åãæ§æã¨ã©ã¼ã¨ãªãã¾ãã
const els\u{65} = 1;
// `els\u{65}` encodes the same identifier as `else`
äºç´èª
ãããã®ãã¼ã¯ã¼ãã¯ã JavaScript ã§å¤æ°ã颿°ãã¯ã©ã¹ãªã©ã®èå¥åã¨ãã¦ä½¿ç¨ãããã¨ã¯ã§ãã¾ããã
break
case
catch
class
const
continue
debugger
default
delete
do
else
export
extends
false
finally
for
function
if
import
in
instanceof
new
null
return
super
switch
this
throw
true
try
typeof
var
void
while
with
以ä¸ã®ãã®ã¯ã峿 ¼ã¢ã¼ãã®ã³ã¼ãã§ä½¿ãããå ´åã®ã¿äºç´èªã«ãªãã¾ãã
let
ï¼const
ãlet
ãã¯ã©ã¹å®ç¾©ã§ãäºç´èªã«ãªãï¼static
yield
ï¼ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã®æ¬ä½ã§ãäºç´èªã«ãªãï¼ä»¥ä¸ã®ãã®ã¯ãã¢ã¸ã¥ã¼ã«ã³ã¼ããéåæé¢æ°æ¬ä½ã«ç¾ããå ´åã«ã®ã¿äºç´èªã«ãªãã¾ãã
ä»å¾ã®äºç´èªä»¥ä¸ã®ãã®ã¯ã ECMAScript ã®ä»æ§ã«ãã£ã¦ä»å¾ã®ãã¼ã¯ã¼ãã¨ãã¦äºç´ããã¦ãã¾ãããããã¯ç¾æç¹ã§ã¯ç¹å¥ãªæ©è½ãæã£ã¦ãã¾ããããå°æ¥ã¯æã¤å¯è½æ§ãããã®ã§ãèå¥åã¨ãã¦ä½¿ç¨ãããã¨ã¯ã§ãã¾ããã
以ä¸ã®ãã®ã¯å¸¸ã«äºç´ããã¦ãã¾ãã
enum
以ä¸ã®ãã®ã¯ã峿 ¼ã¢ã¼ãã§ééããå ´åã®ã¿äºç´èªã«ãªãã¾ãã
implements
interface
package
private
protected
public
以åã® ECMAScript ã®ä»æ§æ¸ (ECMAScript 1 ãã 3 ã¾ã§) ã§ã¯ã以ä¸ã®ãã®ãå°æ¥ã®ãã¼ã¯ã¼ãã¨ãã¦äºç´ããã¦ãã¾ãã
abstract
boolean
byte
char
double
final
float
goto
int
long
native
short
synchronized
throws
transient
volatile
ä¸é¨ã®èå¥åã¯ããã¼ã¯ã¼ãã§ãªãã¦ããããã³ã³ããã¹ãã§ç¹å¥ãªæå³ãæã¤ãã¨ãããã¾ãããããã¯ä»¥ä¸ã®éãã§ãã
arguments
ï¼ãã¼ã¯ã¼ãã§ã¯ããã¾ãããã峿 ¼ã¢ã¼ãã§ã¯èå¥åã¨ãã¦å®£è¨ã§ãã¾ããï¼as
(import * as ns from "mod"
)async
eval
ï¼ãã¼ã¯ã¼ãã§ã¯ããã¾ãããã峿 ¼ã¢ã¼ãã§ã¯èå¥åã¨ãã¦å®£è¨ã§ãã¾ããï¼from
(import x from "mod"
)get
of
set
ã¡ã¢: ãã®ç¯ã§ã¯ãä¸å¯åãªãã¼ã¯ã³ã§ãããªãã©ã«ã«ã¤ãã¦èª¬æãã¾ãããªãã¸ã§ã¯ããªãã©ã«ãé åãªãã©ã«ã¯ãä¸é£ã®ãã¼ã¯ã³ã§æ§æãããå¼ã§ãã
Null ãªãã©ã«è©³ç´°ã«ã¤ãã¦ã¯ null
ãåç
§ãã¦ãã ããã
詳細ã«ã¤ãã¦ã¯è«çåãåç §ãã¦ãã ããã
æ°å¤ãªãã©ã«æ°å¤å (Number) ããã³é·æ´æ°å (BigInt) ãæ°å¤ãªãã©ã«ã使ç¨ãã¾ãã
10 鲿°10 鲿°ãªãã©ã«ãã¼ã (0
) ããå§ããä»ã® 10 鲿°ã®æ°åãç¶ãããã¨ãã§ãã¾ããã 0
ã«ç¶ãæ°åããã¹ã¦ 8 ããå°ããå ´åã¯ããã®æ°å¤ã 8 鲿°ã¨ãã¦è§£éããããã¨ã«æ³¨æãã¦ãã ãããããã«ãæ¥é è¾ 0
ãæã¤æ°å¤ãªãã©ã«ã¯ã 8 鲿°ã¨ 10 鲿°ã®ã©ã¡ãã§è§£éãã¦ãã峿 ¼ã¢ã¼ãã§ã¯æ§æã¨ã©ã¼ãçºçãã¾ããã§ãããã代ããã« 0o
æ¥é è¾ã使ç¨ãã¦ãã ããã
0888 // 888 㯠10 鲿°ã¨ãã¦è§£éããã¾ã
0777 // 8 鲿°ã¨ãã¦è§£éããã 10 鲿°ã§ã¯ 511 ã§ãã
ææ°
10 鲿°ã®ææ°ãªãã©ã«ã¯ã beN
ã®æ¸å¼ã§æå®ãã¾ããããã§ b
ã¯åºæ°ï¼æ´æ°ã¾ãã¯æµ®åå°æ°ç¹ï¼ããã®å¾ã« e
æåï¼ã»ãã¬ã¼ã¿ã¼ã¾ãã¯ææ°è¨å·ã¨ãã¦æ©è½ï¼ããã㦠N
ã¯ææ°ã¾ãã¯ã¹ã乿° - 符å·ä»ãæ´æ°ã§ãï¼2019 ECMA-262 仿§ã«å¾ãã¾ãï¼ã
0e-5 // 0
0e+5 // 0
5e1 // 50
175e-2 // 1.75
1e3 // 1000
1e-3 // 0.001
1E3 // 1000
2 鲿°
2 鲿°ã®æ§æã¯ãå
é ã®ã¼ãã«ç¶ãã¦å°æåã¾ãã¯å¤§æåã®ã©ãã³æå "B" ã使ç¨ãã¾ã (0b
ã¾ã㯠0B
)ã0o
ã®å¾ã« 0 ã¾ã㯠1 以å¤ã®æåãããã¨ãä¸é£ã®ãªãã©ã«ã¯çµäºãã¾ãã
0b10000000000000000000000000000000 // 2147483648
0b01111111100000000000000000000000 // 2139095040
0B00000000011111111111111111111111 // 8388607
8 鲿°
8 鲿°ã®æ§æã¯ãå
é ã®ã¼ãã«ç¶ãã¦å°æåã¾ãã¯å¤§æåã®ã©ãã³æå "O" ã使ç¨ãã¾ã (0o
ã¾ã㯠0O
)ã0o
ã®å¾ã«ç¯å² (01234567) ããå¤ããæåãããã¨ãä¸é£ã®ãªãã©ã«ã¯çµäºãã¾ãã
0O755 // 493
0o644 // 420
16 鲿°
16 鲿°ã®æ§æã¯ãå
é ã®ã¼ãã«ç¶ãã¦å°æåã¾ãã¯å¤§æåã®ã©ãã³æå "X" ã使ç¨ãã¾ã (0x
ã¾ã㯠0X
)ã0x
ã®å¾ã«ç¯å² (0123456789ABCDEF) ããå¤ããæåãããã¨ãä¸é£ã®ãªãã©ã«ã¯çµäºãã¾ãã
0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF // 81985529216486900
0XA // 10
é·æ´æ°ãªãã©ã«
é·æ´æ°å (BigInt) 㯠JavaScript ã®æ°å¤ããªããã£ãã§ãããèªç±ãªç²¾åº¦ã®æ´æ°ã表ããã¨ãã§ãã¾ããé·æ´æ°ãªãã©ã«ã¯ãæ´æ°ã®æ«å°¾ã« n
ã追å ãããã¨ã§ä½æããã¾ãã
123456789123456789n // 123456789123456789
0o777777777777n // 68719476735
0x123456789ABCDEFn // 81985529216486895
0b11101001010101010101n // 955733
é·æ´æ°ãªãã©ã«ã¯ãå¤ã 8 鲿°ã¨æ··åããªãããã0
ã§å§ãããã¨ã¯ã§ãã¾ããã
0755n; // SyntaxError: invalid BigInt syntax
8 鲿°ã® BigInt
æ°å¤ã§ã¯ã常ã«ã¼ãã®å¾ã« "o" (大æåã§ãå°æåã§ã) ãä»ãã¦ä½¿ç¨ãã¦ãã ããã
BigInt
ã«ã¤ãã¦ã®è©³ç´°ãªæ
å ±ã¯ã JavaScript ã®ãã¼ã¿æ§é ãåç
§ãã¦ãã ããã
æ°å¤ãªãã©ã«ã®å¯èªæ§ãé«ããããã«ãã¢ã³ãã¼ã¹ã³ã¢ (_
, U+005F
) ãåºåãæåã¨ãã¦ä½¿ç¨ãããã¨ãã§ãã¾ãã
1_000_000_000_000
1_050.95
0b1010_0001_1000_0101
0o2_2_5_6
0xA0_B0_C0
1_000_000_000_000_000_000_000n
ãªãã以ä¸ã®å¶éãããã¾ãã
// é£ç¶ã㦠2 ã¤ä»¥ä¸ã®ã¢ã³ãã¼ã¹ã³ã¢ã¯è¨±å¯ããã¦ãã¾ãã
100__000; // SyntaxError
// æ°å¤ãªãã©ã«ã®æ«å°¾ã«ç½®ããã¨ã¯è¨±å¯ããã¦ãã¾ãã
100_; // SyntaxError
// å
é ã® 0 ã®å¾ã«ä½¿ç¨ãããã¨ã¯ã§ãã¾ãã
0_1; // SyntaxError
æååãªãã©ã«
æååãªãã©ã«ã¯ãåä¸å¼ç¨ç¬¦ã¾ãã¯äºéå¼ç¨ç¬¦ã«å²ã¾ãã 0 å以ä¸ã® Unicode ã³ã¼ããã¤ã³ãã§ãã Unicode ã³ã¼ããã¤ã³ãã¯ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã§è¡¨ããã¨ãã§ãã¾ãã以ä¸ã®å¼ç¨ç¬¦ãéããã³ã¼ããã¤ã³ããé¤ãã¦ããã¹ã¦ã®ã³ã¼ããã¤ã³ããæååãªãã©ã«ã«ç¾ãããã¨ãã§ãã¾ãã
ãã¹ã¦ã®ã³ã¼ããã¤ã³ãããã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã®å½¢ã§ç¾ãããã¨ãã§ãã¾ããæååãªãã©ã«ã¯ ECMAScript ã®æååå¤ã¨ãã¦è©ä¾¡ããã¾ãããããã®æååã®å¤ãçæããéã«ã Unicode ã³ã¼ããã¤ã³ã㯠UTF-16 ã¨ã³ã³ã¼ãããã¾ãã
次ã®é
ã§ã¯ãæååãªãã©ã«ã§å©ç¨ã§ãããã¾ãã¾ãªã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ï¼\
ã®å¾ã« 1 ã¤ä»¥ä¸ã®æåãç¶ããã®ï¼ãè¨è¿°ãã¾ãã以ä¸ã®ä¸è¦§ã«æ²è¼ããã¦ããªãã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯ãç価ã¨ã¹ã±ã¼ããã¨ãªããã³ã¼ããã¤ã³ããã®ãã®ã«ãªãã¾ããä¾ãã°ã\z
㯠z
ã¨åãã§ããéæ¨å¥¨ã® 8 ææ°ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹æ§æããããéæ¨å¥¨ã®æ©è½ã廿¢ãããæ©è½ãã¼ã¸ã«è¨è¿°ããã¦ãã¾ãããããã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã®å¤ãã¯æ£è¦è¡¨ç¾ã§ãæå¹ã§ããæåã¨ã¹ã±ã¼ããåç
§ãã¦ãã ããã
ç¹æ®æåã¯ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã使ç¨ãã¦ã¨ã³ã³ã¼ããããã¨ãã§ãã¾ãã
ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ Unicode ã³ã¼ããã¤ã³ã\0
ãã«æå (U+0000 NULL) \'
åä¸å¼ç¨ç¬¦ (U+0027 APOSTROPHE) \"
äºéå¼ç¨ç¬¦ (U+0022 QUOTATION MARK) \\
ããã¯ã¹ã©ãã·ã¥ (U+005C REVERSE SOLIDUS) \n
æ¹è¡ (U+000A LINE FEED; LF) \r
ãã£ãªãã¸ãªã¿ã¼ã³ (U+000D CARRIAGE RETURN; CR) \v
åç´ã¿ã (U+000B LINE TABULATION) \t
ã¿ã (U+0009 CHARACTER TABULATION) \b
ããã¯ã¹ãã¼ã¹ (U+0008 BACKSPACE) \f
ãã¼ã¸éã (U+000C FORM FEED) \
ã®ç´å¾ã«æ¹è¡æå 空æåå
æå¾ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã\
ã«æ¹è¡ãç¶ããã®ã¯ãæååãªãã©ã«ããã®æå³ãå¤ããã«è¤æ°è¡ã«åå²ããã®ã«æçãªãã®ã§ãã
const longString =
"This is a very long string which needs \
to wrap across multiple lines because \
otherwise my code is unreadable.";
ããã¯ã¹ã©ãã·ã¥ã®å¾ã«ç©ºç½æåãä»ã®æåï¼æ¹è¡ãé¤ãï¼ããªããã¨ã確èªãã¦ãã ãããããã§ãªããã°åä½ãã¾ãããæ¬¡ã®è¡ãã¤ã³ãã³ãããã¦ããå ´åãä½åãªç©ºéãæååã®å¤ã«ãåå¨ãã¾ãã
ã¾ãã+
æ¼ç®åã使ç¨ãã¦ã次ã®ããã«è¤æ°ã®æååãé£çµãããã¨ãã§ãã¾ãã
const longString =
"This is a very long string which needs " +
"to wrap across multiple lines because " +
"otherwise my code is unreadable.";
ä¸è¨ã®æ¹æ³ã¯ã©ã¡ããåãæååã«ãªãã¾ãã
16 é²ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹16 é²ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯ \x
ã«ç¶ãã¦ã¡ããã© 2 æ¡ã® 16 鲿°ããæãã 0x0000 ãã 0x00FF ã¾ã§ã®ã³ã¼ãåä½ã¾ãã¯ã³ã¼ããã¤ã³ãã表ãã¾ãã
Unicode ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯ \u
ã«ç¶ãã¦ã¡ããã© 4 æ¡ã® 16 鲿°ããæãã¾ããããã§ UTF-16 ã¨ã³ã³ã¼ãã£ã³ã°ã®ã³ã¼ãåä½ã表ãã¾ããã³ã¼ããã¤ã³ã U+0000 ãã U+FFFF ã¾ã§ã¯ãã³ã¼ãåä½ã¨ã³ã¼ããã¤ã³ãã¯çãããªãã¾ããã³ã¼ããã¤ã³ã U+10000 ãã U+10FFFF ã¾ã§ã¯ã 2 ã¤ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã§ 2 ã¤ã®ã³ã¼ãåä½ (ãµãã²ã¼ããã¢) ã表ãå¿
è¦ãããã¾ãããµãã²ã¼ããã¢ã¯ã³ã¼ããã¤ã³ãã§åºå¥ããã¾ãã
String.fromCharCode()
ããã³ String.prototype.charCodeAt()
ãåç
§ãã¦ãã ããã
Unicode ã³ã¼ããã¤ã³ãã¨ã¹ã±ã¼ã㯠\u{
ã«ç¶ã㦠16 鲿°ã®ã³ã¼ããã¤ã³ããç¶ãã }
ãç¶ãã¾ãã 16 鲿°ã®å¤ã¯ 0 ãã 0x10FFFF ã¾ã§ã®ç¯å²ã«å«ã¾ãã¦ããå¿
è¦ãããã¾ãã U+10000 ãã U+10FFFF ã¾ã§ã®ç¯å²ã®ã³ã¼ããã¤ã³ããããµãã²ã¼ããã¢ã¨ãã¦è¡¨ãå¿
è¦ã¯ããã¾ããã
String.fromCodePoint()
ã¾ã㯠String.prototype.codePointAt()
ãåç
§ãã¦ãã ããã
"\u{2F804}"; // CJK COMPATIBILITY IDEOGRAPH-2F804 (U+2F804)
// åãæåããµãã²ã¼ããã¢ã§è¡¨ãããã®
"\uD87E\uDC04";
æ£è¦è¡¨ç¾ãªãã©ã«
æ£è¦è¡¨ç¾ãªãã©ã«ã¯2ã¤ã®ã¹ã©ãã·ã¥ (/
) ã§å²ã¾ãã¾ããåå¥è§£æå¨ã¯ãã¹ã©ãã·ã¥ãæåã¯ã©ã¹ ([]
) å
ã«ç¾ããªãéããã¨ã¹ã±ã¼ãããã¦ããªã次ã®ã¹ã©ãã·ã¥ã¾ãã¯è¡ã®çµããã¾ã§ã®ãã¹ã¦ã®æåãå¦çãã¾ããä¸é¨ã®æåï¼ããªãã¡ãèå¥åã®ä¸é¨ï¼ã¯ãéãã¹ã©ãã·ã¥ã®å¾ã«ç¾ãããã¨ããããããã¯ãã©ã°ã表ãã¾ãã
å奿æ³ã¯ã¨ã¦ãçãã1 ã¤ã®ãã¼ã¯ã³ã¨ãã¦åå¾ãããæ£è¦è¡¨ç¾ãªãã©ã«ããã¹ã¦æå¹ãªæ£è¦è¡¨ç¾ã¨ã¯éãã¾ããã
詳細ã«ã¤ãã¦ã¯ RegExp
ãåç
§ãã¦ãã ããã
æ£è¦è¡¨ç¾ãªãã©ã«ã¯ 2 ã¤ã®ã¹ã©ãã·ã¥ (//
) ã§å§ãããã¨ã¯ã§ãã¾ãããç©ºã®æ£è¦è¡¨ç¾ãæå®ããã«ã¯ /(?:)/
ã使ç¨ãã¦ãã ããã
ä¸ã¤ã®ãã³ãã¬ã¼ããªãã©ã«ã¯ãè¤æ°ã®ãã¼ã¯ã³ããæãã¾ãã`xxx${
ï¼ãã³ãã¬ã¼ãã®å
é ï¼ã}xxx${
ï¼ãã³ãã¬ã¼ãã®ä¸éï¼ã}xxx`
ï¼ãã³ãã¬ã¼ãã®æ«å°¾ï¼ã¯åå¥ã®ãã¼ã¯ã³ã§ããããããã®éã«ã¯ã©ã®ãããªå¼ãå
¥ã£ã¦ããã¾ãã¾ããã
詳細ã«ã¤ãã¦ããã³ãã¬ã¼ããªãã©ã«ãåç §ãã¦ãã ããã
`string text`;
`string text line 1
string text line 2`;
`string text ${expression} string text`;
tag`string text ${expression} string text`;
èªåã»ãã³ãã³æ¿å
¥
ä¸é¨ã® JavaScript æã¯ãæ«å°¾ã«ã»ãã³ãã³ (;
) ãå¿
è¦ã§ããããã«ã¯æ¬¡ã®ãããªãã®ãããã¾ãã
var
, let
, const
do...while
continue
, break
, return
, throw
debugger
import
, export
ããããJavaScriptã¯ãã®è¨èªãããæè»½ã§ä¾¿å©ãªãã®ã«ããããã«ããã¼ã¯ã³ã¹ããªã¼ã ãå¦çããéã«ã»ãã³ãã³ãèªåçã«æ¿å ¥ãããã¨ãããã䏿£ãªãã¼ã¯ã³åãæå¹ãªæ§æã«ãä¿®æ£ããããã¨ãã§ãã¾ãããã®æé ã¯ãããã°ã©ã ããã¹ããå奿æ³ã«å¾ã£ã¦ãã¼ã¯ã³ã«è§£éãããå¾ã«è¡ããã¾ããã»ãã³ãã³ãèªåçã«æ¿å ¥ãããã±ã¼ã¹ã¯ 3 ã¤ããã¾ãã
1. ææ³ä¸è¨±ãããªããã¼ã¯ã³ã«åºä¼ã£ãã¨ãããããåã®ãã¼ã¯ã³ããå°ãªãã¨ã 1 ã¤ã®æ¹è¡æåï¼1 ã¤ä»¥ä¸ã®æ¹è¡ãå«ããããã¯ã³ã¡ã³ããå«ãï¼ã§åºåããã¦ãããããã®ãã¼ã¯ã³ã "}" ã§ããã°ããã®åã«ã»ãã³ãã³ãæ¿å ¥ããã¾ãã
{ 1
2 } 3
// ä¸è¨ã®æã¯ã ASI ã«ãã£ã¦æ¬¡ã®ããã«å¤æããã¾ã
{ 1
;2 ;} 3;
// 3 ã¤ã®æãã¨ã³ã³ã¼ãããæ£ããææ³ã§ã
// ãããããæ°å¤ãªãã©ã«ã§æ§æããã¦ãã¾ã
do...while
ã®æ«å°¾ã® ")" ã¯ããã®ã«ã¼ã«ã§ãç¹å¥ãªã±ã¼ã¹ã¨ãã¦æ±ããã¾ãã
do {
// ...
} while (condition) /* ; */ // ASI ãè¡ããã
const a = 1
ããããã»ãã³ãã³ã for
æã®é ã®åºåãæåã«ãªãå ´åã¯ãã»ãã³ãã³ã¯æ¿å
¥ããã¾ããã
for (
let a = 1 // ASI ã¯è¡ãããªã
a < 10 // ASI ã¯è¡ãããªã
a++
) {}
ã¾ããã»ãã³ãã³ã空æã¨ãã¦æ¿å
¥ããããã¨ãããã¾ãããä¾ãã°ãä¸è¨ã®ã³ã¼ãã§ ")" ã®å¾ã«ã»ãã³ãã³ãæ¿å
¥ãããå ´åãç©ºã®æãifæã®æ¬ä½ã¨ãªããconst
宣è¨ãå¥åã®æã¨ãªãããããã®ã³ã¼ãã¯æå¹ã«ãªãã¾ããããããèªåçã«æ¿å
¥ãããã»ãã³ãã³ã¯ç©ºæã«ã¯ãªããªãããã宣è¨ã if
æã®æ¬ä½ã¨ãªã£ã¦ãã¾ããç¡å¹ã«ãªãã¾ãã
if (Math.random() > 0.5)
const x = 1 // SyntaxError: Unexpected token 'const'
2. ãã¼ã¯ã³ã®å ¥åã¹ããªã¼ã ã®æ«å°¾ãæ¤åºããããã¼ãµã¼ãåä¸ã®å ¥åã¹ããªã¼ã ãå®å ¨ãªããã°ã©ã ã¨ãã¦è§£éã§ããªãå ´åãæ«å°¾ã«ã»ãã³ãã³ãæ¿å ¥ããã¾ãã
const a = 1 /* ; */ // ASI ãè¡ããã
ãã®ã«ã¼ã«ã¯ååã®ã«ã¼ã«ãè£å®ãããã®ã§ãç¹ã«ãåé¡ã®ãããã¼ã¯ã³ãããªããå ¥åã¹ããªã¼ã ãçµãã£ã¦ããå ´åãæ³å®ãã¦ãã¾ãã
3. ææ³ä¸ã§æ¹è¡ãç¦æ¢ããã¦ããå ´æã§æ¹è¡ãè¦ã¤ãã£ãå ´åã¯ãã»ãã³ãã³ãæ¿å ¥ãã¾ãããã®ãããªå ´æã¯ã以ä¸ã®éãã§ãã
å¼ <ãã> ++
, å¼ <ãã> --
continue <ãã> ã©ãã«
break <ãã> ã©ãã«
return <ãã> å¼
throw <ãã> å¼
yield <ãã> å¼
yield <ãã> * å¼
(param) <ãã> => {}
async <ãã> function
, async <ãã> prop()
, async <ãã> function*
, async <ãã> *prop()
, async <ãã> (param) <ãã> => {}
ããã§ ++
ã¯ã夿° b
ã«é©ç¨ãããå¾ç½®æ¼ç®åã¨ãã¦ã¯æ±ããã¾ãããã¨ããã®ããæ¹è¡æåã b
ã¨++
ã®éã«ããããã§ãã
a = b
++c
// ä¸è¨ã®æã¯ã ASI ã«ãã£ã¦æ¬¡ã®ããã«å¤æããã¾ã
a = b;
++c;
ããã§ã¯ã return
æã¯ undefined
ãè¿ãã a + b
ã¯å°éã§ããªãæã«ãªãã¾ãã
return
a + b
// ä¸è¨ã®æã¯ã ASI ã«ãã£ã¦æ¬¡ã®ããã«å¤æããã¾ã
return;
a + b;
ASI ã¯ãæ¹è¡ããªããã°ç¡å¹ãªæ§æãçæãããããªãã¼ã¯ã³ãåºåã£ãå ´åã«ã®ã¿çºçãããã¨ã«æ³¨æãã¦ãã ãããæ¬¡ã®ãã¼ã¯ã³ãæå¹ãªæ§æã®ä¸é¨ã¨ãã¦è§£éã§ããå ´åã¯ãã»ãã³ãã³ã¯æ¿å ¥ããã¾ãããä¾ãã°ã
const a = 1
(1).toString()
const b = 1
[1, 2, 3].forEach(console.log)
()
ã¯é¢æ°å¼ã³åºãã¨è¦ãªããã®ã§ãé常㯠ASI ãçºçããªãã§ããããåæ§ã«ã []
ã¯ã¡ã³ãã¼ã¢ã¯ã»ã¹ã§ããå¯è½æ§ãããã¾ããä¸ã®ã³ã¼ãã¯æ¬¡ã®ãã®ã¨åçã§ãã
const a = 1(1).toString();
const b = 1[1, 2, 3].forEach(console.log);
ããã¯æå¹ãªæ§æã«ãªãã¾ãã1[1,2,3]
ã¯ã«ã³ãã§çµåãããå¼ã®ããããã£ã¢ã¯ã»ãµã¼ã§ãããã®ãããã³ã¼ããå®è¡ãã㨠"1 is not a function" ã "Cannot read properties of undefined (reading 'forEach')" ãªã©ã®ã¨ã©ã¼ãçºçãããã¨ã«ãªãã¾ãã
ã¯ã©ã¹å ã§ã¯ãã¯ã©ã¹ãã£ã¼ã«ããã¸ã§ãã¬ã¼ã¿ã¼ã¡ã½ãããè½ã¨ãç©´ã«ãªããã¨ãããã¾ãã
class A {
a = 1
*gen() {}
}
ããã¯æ¬¡ã®ããã«ãªãã¾ãã
class A {
a = 1 * gen() {}
}
ãããã£ã¦ã {
ã®ãããã§æ§æã¨ã©ã¼ã«ãªãã¾ãã
ã»ãã³ãã³ãªãã®ã¹ã¿ã¤ã«ãå¼·å¶ãããå ´åãASI ãæ±ãã«ã¯ä»¥ä¸ã®çµé¨åãããã¾ãã
å¾ç½®å ++
ããã³ --
ã¯ãªãã©ã³ãã¨åãè¡ã«ç½®ãã¾ãããã
const a = b
++
console.log(a) // ReferenceError: Invalid left-hand side expression in prefix operation
const a = b++
console.log(a)
return
, throw
, yield
ã®å¾ã®å¼ã¯ããã¼ã¯ã¼ãã¨åãè¡ã«ç½®ãã¾ãããã
function foo() {
return
1 + 1 // Returns undefined; 1 + 1 is ignored
}
function foo() {
return 1 + 1
}
function foo() {
return (
1 + 1
)
}
åæ§ã«ãbreak
ã continue
ã®å¾ã®ã©ãã«èå¥åã¯ããã¼ã¯ã¼ãã¨åãè¡ã«ç½®ãã¾ãããã
outerBlock: {
innerBlock: {
break
outerBlock // SyntaxError: Illegal break statement
}
}
outerBlock: {
innerBlock: {
break outerBlock
}
}
ã¢ãã¼é¢æ°ã® =>
ã¯å¼æ°ã¨åãè¡ã«ç½®ãã¾ãããã
const foo = (a, b)
=> a + b
const foo = (a, b) =>
a + b
éåæé¢æ°ãã¡ã½ãããªã©ã® async
ã®ç´å¾ã«æ¹è¡ãç½®ããã¨ã¯ã§ãã¾ããã
(
, [
, `
, +
, -
, /
ï¼æ£è¦è¡¨ç¾ãªãã©ã«ã¨ãã¦ï¼ã®ããããã§å§ã¾ãè¡ã¯ããã®åã«ã»ãã³ãã³ãç½®ãããåã®è¡ãã»ãã³ãã³ã§çµããããããã¾ãããã
// ãã® () ã¯åã®è¡ã¨çµåãã¦é¢æ°å¼ã³åºãã¨ãªãå¯è½æ§ããã
(() => {
// ...
})()
// ãã® [ ã¯åã®è¡ã¨çµåãã¦ããããã£ã¢ã¯ã»ã¹ã¨ãªãå¯è½æ§ããã
[1, 2, 3].forEach(console.log)
// ãã® ` ã¯åã®è¡ã¨çµåãã¦ã¿ã°ä»ããã³ãã¬ã¼ããªãã©ã«ã¨ãªãå¯è½æ§ããã
`string text ${data}`.match(pattern).forEach(console.log)
// ãã® + ã¯åã®è¡ã¨çµåãã¦äºé
+ å¼ã¨ãªãå¯è½æ§ããã
+a.toString()
// ãã® - ã¯åã®è¡ã¨çµåãã¦äºé
- å¼ã¨ãªãå¯è½æ§ããã
-a.toString()
// ãã® / ã¯åã®è¡ã¨çµåãã¦é¤ç®å¼ã¨ãªãå¯è½æ§ããã
/pattern/.exec(str).forEach(console.log)
;(() => {
// ...
})()
;[1, 2, 3].forEach(console.log)
;`string text ${data}`.match(pattern).forEach(console.log)
;+a.toString()
;-a.toString()
;/pattern/.exec(str).forEach(console.log)
ã¯ã©ã¹ã®ãã£ã¼ã«ãã¯ãã§ããã°å¸¸ã«ã»ãã³ãã³ã§çµããããã«ãã¾ããããä¸ã¤åã®ã«ã¼ã«ï¼ãã£ã¼ã«ã宣è¨ã®å¾ã«è¨ç®ãããããããã£ãç¶ãã¨ããã®å¾ã¯ [
ã§å§ã¾ãï¼ã«å ãã¦ãã»ãã³ãã³ã¯ãã£ã¼ã«ã宣è¨ã¨ã¸ã§ãã¬ã¼ã¿ã¼ã¡ã½ããã®éã«ãå¿
è¦ã§ãã
class A {
a = 1
[b] = 2
*gen() {} // Seen as a = 1[b] = 2 * gen() {}
}
class A {
a = 1;
[b] = 2;
*gen() {}
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4