æ¼ç®åã®åªå é ä½
æ¼ç®åã®åªå é ä½ã¯ãæ¼ç®åãäºãã«ã©ã®ããã«è§£éãããããæ±ºå®ãã¾ããåªå 度ã®é«ãæ¼ç®åã¯ãåªå 度ã®ä½ãæ¼ç®åã®ãªãã©ã³ãã«ãªãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(3 + 4 * 5); // 3 + 20
// äºæ³ãããçµæ: 23
console.log(4 * 3 ** 2); // 4 * 9
// äºæ³ãããçµæ: 36
let a;
let b;
console.log((a = b = 5));
// äºæ³ãããçµæ: 5
åªå 度ã¨çµåæ§
以ä¸ã®è¡¨ç¾ã§è¨è¿°ã§ããå¼ãèãã¦ã¿ã¾ãããããªããOP1 㨠OP2 ã¯æ¼ç®åã«ç½®ãæããã¾ãã
a OP1 b OP2 c
ä¸è¨ã®çµã¿åããã«ã¯ 2 ã¤ã®è§£éã®å¯è½æ§ãããã¾ãã
(a OP1 b) OP2 c a OP1 (b OP2 c)
è¨èªãã©ã¡ããæ¡ç¨ãããã¯ãOP1ã¨OP2ã®çµã¿åããã«ãã£ã¦æ±ºã¾ãã¾ãã
OP1 㨠OP2 ã®åªå
é ä½ï¼ä¸è¨ã®ä¸è¦§è¡¨ãåç
§ï¼ãç°ãªãå ´åã¯ãåªå
é ä½ã®é«ãæ¼ç®åãå
ã«å®è¡ãããçµåæ§ã¯é¢ä¿ããã¾ãããã³ã¼ãã®ä¸ã§å ç®ãå
ã«æ¸ããã¦ããã«ãããããããä¹ç®ã®æ¹ãå ç®ãããåªå
é ä½ãé«ããå
ã«å®è¡ããã¦ãããã¨ã確èªãã¦ãã ããã
console.log(3 + 10 * 2); // 23
console.log(3 + (10 * 2)); // æ¬å¼§ã®åªå
é ä½ãé«ãã®ã§ã23 ãåºå
console.log((3 + 10) * 2); // æ¬å¼§ãé ä½ã夿´ããã®ã§ 26 ãåºå
åãåªå
åº¦ã®æ¼ç®åå士ã§ã¯ãè¨èªã¯ãçµåæ§ãã«ãã£ã¦ã°ã«ã¼ãåãã¾ããå·¦çµåï¼å·¦âå³ï¼ã¯ (a OP1 b) OP2 c ã®ããã«å¦çããããã¨ã§ãããå³çµåï¼å³âå·¦ï¼ã¯ a OP1 (b OP2 c) ã®ããã«è§£éããããã¨ã§ãã代å
¥æ¼ç®åã¯å³çµåãªã®ã§ããã®ããã«æ¸ããã¨ãã§ãã¾ãã
a = b = 5; // a = (b = 5); ã¨æ¸ããã®ã¨åã
ããã§ãa 㨠b ã 5 ã®å¤ãå¾ãã¨ããæå¾
éãã®çµæãå¾ããã¨ãã§ãã¾ããããã¯ä»£å
¥æ¼ç®åã代å
¥ããå¤ãè¿ãããã§ããã¾ã b ã« 5 ãè¨å®ããã¾ãããã㦠a ã«ãã代å
¥æ¼ç®åã®å³ãªãã©ã³ãã§ãã b = 5 ãè¿ã 5 ãè¨å®ãããã®ã§ãã
ä»ã®ä¾ã¨ãã¦ãã¹ã乿¼ç®åã ããå³çµåæ§ãæã¡ã¾ãããä»ã®ç®è¡æ¼ç®åã¯å·¦çµåæ§ãæã¡ã¾ãã
const a = 4 ** 3 ** 2; // 4 ** (3 ** 2) ã¨åãã 262144 ã«è§£éããã
const b = 4 / 3 / 2; // (4 / 3) / 2 ã¨åãã 0.6666... ã«è§£éããã
æ¼ç®åã¯æåã®ã¹ãããã§åªå
é ä½ã«ãã£ã¦ã°ã«ã¼ãåãããæ¬¡ã«åãåªå
é ä½ãæã¤é£æ¥ããæ¼ç®åã«ã¤ãã¦ã¯é¢é£ä»ããããçµåæ§ã«ãã£ã¦ã°ã«ã¼ãåããã¾ãããããã£ã¦ãé¤ç®ã¨ç´¯ä¹ãæ··å¨ãã¦ããå ´åãç´¯ä¹æ¼ç®ã¯å¸¸ã«é¤ç®ããå
ã«å®è¡ããã¾ããä¾ãã°ã2 ** 3 / 3 ** 2 㯠(2 ** 3) / (3 ** 2) ã¨åçã§ãããããçµæã¯ 0.8888888888888888 ã¨ãªãã¾ãã
åç½®åé æ¼ç®åã®å ´åãæ¬¡ã®ãã¿ã¼ã³ãèãã¦ã¿ã¦ãã ããã
OP1 a OP2 b
ããã§ãOP1 ã¯åç½®åé
æ¼ç®åã§ãããOP2 ã¯äºé
æ¼ç®åã§ãã OP1 ã®åªå
é ä½ã OP2 ããé«ãå ´åã(OP1 a) OP2 b ã¨ãã¦ã°ã«ã¼ãåããã¾ããããã§ãªãå ´åã¯ãOP1 (a OP2 b) ã¨ãªãã¾ãã
const a = 1;
const b = 2;
typeof a + b; // (typeof a) + b ã¨çãããªãã "number2" ã®çµæã«ãªãã¾ãã
åé æ¼ç®åã 2 ã¤ç®ãªãã©ã³ãã§ããå ´åã
a OP2 OP1 b
äºé
æ¼ç®å OP2 ã a OP2 (OP1 b) ã®ããã«ã°ã«ã¼ãåãããããã«ã¯ãåé
æ¼ç®å OP1 ãããåªå
é ä½ãä½ããªãã¨ããã¾ãããä¾ãã°ã次ã®ãã®ã¯ç¡å¹ã§ãã
function* foo() {
a + yield 1;
}
+ æ¼ç®å㯠yield ãããåªå
é ä½ãé«ãããããã㯠(a + yield) 1 ã¨ãªãã¾ãããããã yield ã¯ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã«ãããäºç´èªã§ãããããããã¯æ§æã¨ã©ã¼ã¨ãªãã¾ãã幸ããªãã¨ã«ãã»ã¨ãã©ã®åé
æ¼ç®åã¯äºé
æ¼ç®åãããåªå
é ä½ãé«ãããã®è½ã¨ãç©´ã«æ©ã¾ããã«æ¸ã¿ã¾ãã
2 ã¤ã®åç½®åé æ¼ç®åãæå®ãããå ´åã¯ã©ãã§ããããã
OP1 OP2 a
ãªãã©ã³ãã«ããè¿ãåé
æ¼ç®å OP2 ã¯ãOP1 (OP2 a) ã¨ãã¦ã°ã«ã¼ãåãããããã«ã¯ãåªå
é ä½ã OP1 ããé«ããªããã°ãªãã¾ããã ãã以å¤ã®æ¹æ³ã«ããã(OP1 OP2) a ã¨ãªãå¯è½æ§ãããã¾ãã
async function* foo() {
await yield 1;
}
await 㯠yield ãããåªå
é ä½ãé«ãããããã㯠(await yield) 1 ã¨ãªããyield ã¨ããååã®èå¥åãå¾
æ©ãããã¨ã«ãªããæ§æã¨ã©ã¼ã¨ãªãã¾ããåæ§ã«ãnew !A; ã¨è¨è¿°ããå ´åã! ã®åªå
é ä½ã new ããä½ãããããã㯠(new !) A ã¨ãªããæããã«ä¸æ£ãªæ§æã¨ãªãã¾ããï¼!A ã¯å¸¸ã«è«çå¤ãçæããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ã¯ãªãã®ã§ãããã¯ããããæå³ããªããªãããã«è¦ãã¾ããï¼
å¾ç½®åé
æ¼ç®åï¼ããªãã¡ ++ 㨠--ï¼ã«ã¤ãã¦ãåæ§ã®è¦åãé©ç¨ããã¾ãã幸ããªãã¨ã«ãã©ã¡ãã®æ¼ç®åãäºé
æ¼ç®åãããåªå
é ä½ãé«ããããæ¬å¼§ã®ä»ãæ¹ã¯å¸¸ã«æå¾
éãã«ãªãã¾ããããã«ã ++ ã¯åç
§ã§ã¯ãªãå¤ãè©ä¾¡ãããããè¤æ°ã®ã¤ã³ã¯ãªã¡ã³ããé£çµãããã¨ãã§ãã¾ããã
let a = 1;
a++++; // SyntaxError: Invalid left-hand side in postfix operation.
æ¼ç®åã®åªå é ä½ã¯å帰çã«å¦çããã¾ããä¾ãã°ã次ã®å¼ãèãã¦ã¿ã¾ãããã
1 + 2 ** 3 * 4 / 5 >> 6
ã¾ããç°ãªãåªå 度ãæã¤æ¼ç®åãåªå 度ã®é«ãé ã«ã°ã«ã¼ãåãã¾ãã
**æ¼ç®åã¯æãé«ãåªå é ä½ãæã¤ãããã¾ãã°ã«ã¼ãåããã¾ãã**å¼ãè¦ã¦ããã¨ãå³å´ã«*ãå·¦å´ã«+ãããã¾ãã*ã®åªå é ä½ãé«ããããã¾ã*ãã°ã«ã¼ãåããã¾ãã*ã¨/ã¯åãåªå é ä½ãªã®ã§ãã¨ããããããããä¸ç·ã«ã°ã«ã¼ãåããã¾ãã- 2 ã§ã°ã«ã¼ãåããã
*//å¼ã®å¨ããè¦ãã¨ã+ã¯>>ãããé«ãåªå 度ãæã¤ãããåè ãã°ã«ã¼ãåããã¾ãã
(1 + ( (2 ** 3) * 4 / 5) ) >> 6
// â â ââ 1. ââ â â
// â âââââââ 2. ââââââââ â
// âââââââââââ 3. âââââââââââ
*// ã°ã«ã¼ãå
ã§ã¯ã両æ¹ãå·¦çµåã§ãããããå·¦ãªãã©ã³ããã°ã«ã¼ãåããã¾ãã
(1 + ( ( (2 ** 3) * 4 ) / 5) ) >> 6
// â â â ââ 1. ââ â â â
// â ââââââââââ 2. âââââââââ â
// âââââââââââââ 3. âââââââââââââ
// ââââââ 4. ââââââ
æ¼ç®åã®åªå é ä½ã¨çµåæ§ã¯ãæ¼ç®åã®è©ä¾¡é åºï¼æé»ã®ã°ã«ã¼ãåï¼ã«ã®ã¿å½±é¿ãããªãã©ã³ãã®è©ä¾¡é åºã«ã¯å½±é¿ããªããã¨ã«æ³¨æãã¦ãã ããããªãã©ã³ãã¯å¸¸ã«å·¦âå³ã¸è©ä¾¡ããã¾ããåªå é ä½ã®é«ãå¼ã¯å¸¸ã«ã¾ãè©ä¾¡ããããã®çµæã¯æ¼ç®åã®åªå é åºã«å¾ã£ã¦çµã¿åãããã¾ãã
function echo(name, num) {
console.log(`${name}å´ãè©ä¾¡ãã¦ãã¾ã`);
return num;
}
// ã¹ã乿¼ç®å (**) ã¯å³çµåã ãã
// ãã¹ã¦ã®å¼ã³åºãå¼ (echo()) ã¯ããé«ãåªå
度ãæã¡ã
// ** ãããåã«è©ä¾¡ããã
console.log(echo("å·¦", 4) ** echo("ä¸", 3) ** echo("å³", 2));
// å·¦å´ãè©ä¾¡ãã¦ãã¾ã
// ä¸å´ãè©ä¾¡ãã¦ãã¾ã
// å³å´ãè©ä¾¡ãã¦ãã¾ã
// 262144
// ã¹ã乿¼ç®å (**) ã¯é¤ç®æ¼ç®å (/) ãããé«ãåªå
度ãæã¤ãã
// è©ä¾¡ã¯å¸¸ã«å·¦ã®ãªãã©ã³ãããè¡ããã
console.log(echo("å·¦", 4) / echo("ä¸", 3) ** echo("å³", 2));
// å·¦å´ãè©ä¾¡ãã¦ãã¾ã
// ä¸å´ãè©ä¾¡ãã¦ãã¾ã
// å³å´ãè©ä¾¡ãã¦ãã¾ã
// 0.4444444444444444
äºåæ¨ã«æ £ãã¦ããå ´åã¯ããããå¾é èµ°æ»ã¨èãã¦ãã ããã
/
ââââââââââ´âââââââââ
echo("å·¦", 4) **
ââââââââââ´âââââââââ
echo("ä¸", 3) echo("å³", 2)
ãã¹ã¦ã®æ¼ç®åãé©åã«ã°ã«ã¼ãåãããå¾ãäºé
æ¼ç®åã¯äºåæ¨ãå½¢æãã¾ããè©ä¾¡ã¯æãå¤å´ã®ã°ã«ã¼ãï¼ããã¯åªå
度ãæãä½ãæ¼ç®å /ï¼ããå§ã¾ãã¾ãããã®æ¼ç®åã®å·¦ãªãã©ã³ããã¾ãè©ä¾¡ãããããã«ã¯ããåªå
度ã®é«ãæ¼ç®åï¼å¼ã³åºãå¼ echo("left", 4) ãªã©ï¼ãå«ã¾ããå¯è½æ§ãããã¾ããå·¦ãªãã©ã³ãã®è©ä¾¡å¾ãå³ãªãã©ã³ããåæ§ã®æ¹æ³ã§è©ä¾¡ããã¾ãããããã£ã¦ãçµåããæ¼ç®åã®åªå
度ã«é¢ä¿ãªãããã¹ã¦ã®èãã¼ãï¼echo() å¼ã³åºãï¼ã¯å·¦âå³ã¸èµ°æ»ããã¾ãã
ç絡è©ä¾¡
åç¯ã§ã¯ãåªå é ä½ã®é«ãå¼ã¯å¸¸ã«å ã«è©ä¾¡ãããã¨è¨ãã¾ããããããã¯ä¸è¬çã«æ£ãããã®ã®ããç絡è©ä¾¡ãã®åå¨ãèæ ®ããå¿ è¦ãããã¾ããç絡è©ä¾¡ã®å ´åããªãã©ã³ããã¾ã£ããè©ä¾¡ãããªãå¯è½æ§ãããã¾ãã
ç絡è©ä¾¡ã¯ãæ¡ä»¶ä»ãè©ä¾¡ã表ãç¨èªã§ããä¾ãã°ãa && (b + c) ã¨ããå¼ã«ããã¦ãa ãå½å¤ã§ããå ´åãå¾å±å¼ã§ãã (b + c) ã¯æ¬å¼§ã§å²ã¾ãã¦ã㦠&& ããåªå
é ä½ãé«ãã¦ãè©ä¾¡ããã¾ããããã®è«çç©æ¼ç®å (&&) ã¯ãç絡çãã¨ãããã§ããããè«çç©æ¼ç®åã«å ãã¦ããã®ä»ã®ç絡è©ä¾¡ãããæ¼ç®åã«ã¯ãè«çåæ¼ç®å (||)ããã«å¤å使¼ç®å (??)ããªãã·ã§ãã«ãã§ã¼ã³æ¼ç®å (?.) ãããã¾ãã
a || (b * c); // ã¾ã `a` ãè©ä¾¡ãã `a` ããçå¤ãã§ããã° `a` ãåºå
a && (b < c); // ã¾ã `a` ãè©ä¾¡ãã `a` ããå½å¤ãã§ããã° `a` ãåºå
a ?? (b || c); // ã¾ã `a` ãè©ä¾¡ãã `a` ã `null` ã¾ã㯠`undefined` ã§ãªããã° `a` ãåºå
a?.b.c; // ã¾ã `a` ãè©ä¾¡ãã `a` ã `null` ã¾ã㯠`undefined` ã§ããã° `undefined` ãåºå
ç絡è©ä¾¡ãããæ¼ç®åãè©ä¾¡ããéãå·¦ãªãã©ã³ãã¯å¸¸ã«è©ä¾¡ããã¾ããå³ãªãã©ã³ãã¯ãå·¦ãªãã©ã³ãã§æä½ã®çµæã決å®ã§ããªãå ´åã«ã®ã¿è©ä¾¡ããã¾ãã
ã¡ã¢:
ç絡è©ä¾¡ã®æåã¯ããããã®æ¼ç®åã«çµã¿è¾¼ã¾ãã¦ãã¾ãã ãã®ä»ã®æ¼ç®åã¯ãå®éã«æç¨ãã©ããã«é¢ãããã常ã«ä¸¡æ¹ã®ãªãã©ã³ããè©ä¾¡ãã¾ãã ä¾ãã°ãNaN * foo() ã¯ãçµæã NaN 以å¤ã®å¤ã«ãªããã¨ã絶対ã«ãªãå ´åã§ãã常㫠foo ãå¼ã³åºãã¾ãã
åè¿°ã®å¾é èµ°æ»ã®ã¢ãã«ã¯ãã®å ´åãæå¹ã§ãããã ããç絡è©ä¾¡æ¼ç®åã®å·¦é¨åæ¨ãèµ°æ»ããå¾ãè¨èªã¯å³ãªãã©ã³ãã®è©ä¾¡ãå¿
è¦ãã©ããã夿ãã¾ããå¿
è¦ããªãå ´åï¼ä¾ãã° || ã®å·¦ãªãã©ã³ããæ¢ã«çå¤ã§ããå ´åãªã©ï¼ãå³é¨åæ¨ãèµ°æ»ããã«çµæãç´æ¥è¿ããã¾ãã
ãã®å ´åãèãã¦ã¿ã¦ãã ããã
function A() { console.log('called A'); return false; }
function B() { console.log('called B'); return false; }
function C() { console.log('called C'); return true; }
console.log(C() || B() && A());
// åºå:
// called C
// true
&&ã®åªå
é ä½ãããé«ãã«ãããããããC()ã®ã¿ãè©ä¾¡ããã¾ããããã¯||ã®åªå
é ä½ãããé«ãã¨ãããã¨ã§ã¯ããã¾ããââã¾ãã«(B() && A())ã®åªå
é ä½ãããé«ãããã«ãå
¨ä½ã¨ãã¦ç¡è¦ãããã®ã§ããæ¬¡ã®ããã«åé
ç½®ããã¨ã
console.log(A() && B() || C());
// Logs:
// called A
// called C
// true
&& ã®ç絡è©ä¾¡ã®å¹æã§ B() ã®è©ä¾¡ã黿¢ãã¾ãããA() && B() å
¨ä½ã false ã§ãããããC() ã¯è©ä¾¡ããã¾ãã
ãã ããç絡è©ä¾¡ãã¦ãæçµçãªè©ä¾¡çµæã¯å¤ããã¾ãããç絡è©ä¾¡ã¯ãªãã©ã³ãã®è©ä¾¡ã«ã®ã¿å½±é¿ããæ¼ç®åã®ã°ã«ã¼ãåæ¹æ³ã«ã¯å½±é¿ãã¾ããããªãã©ã³ãã®è©ä¾¡ãå¯ä½ç¨ãæããªãï¼ä¾ãã°ãã³ã³ã½ã¼ã«ã¸ã®åºåã夿°ã¸ã®å²ãå½ã¦ããã¨ã©ã¼ãçºçããï¼å ´åãç絡è©ä¾¡ã¯ã¾ã£ããèªèã§ãã¾ããã
ãããã®æ¼ç®åã®ä»£å
¥å½¢ï¼&&=ã ||=ã??=ï¼ãåæ§ã«ç絡è©ä¾¡ãè¡ããã¾ãããããã®æ¼ç®åã§ã¯ãç絡è©ä¾¡ãè¡ãããã¨ã代å
¥ãã¾ã£ããç¾ããªããªãã¾ãã
ä¸è¦§è¡¨
以ä¸ã®è¡¨ã¯åªå é ä½ã®æãé«ããã® (18) ããæãä½ããã® (1) ã®é ã«ä¸¦ã¹ããã¦ãã¾ãã
ãã®è¡¨ã«é¢ããå ¨è¬çãªæ³¨æ:
- ããã«è¨è¼ããã¦ãããã¹ã¦ã®æ§æãå³å¯ãªæå³ã§ã®ãæ¼ç®åãã¨ããããã§ã¯ããã¾ãããä¾ãã°ãã¹ãã¬ãã
...ãç¢å°=>ã¯éå¸¸ãæ¼ç®åã¨ã¯è¦ãªããã¾ãããããããä»ã®æ¼ç®åãå¼ã¨æ¯è¼ãã¦ã©ãã»ã©å¼·ãçµåãããã示ãããã«ãããããè¨è¼ãã¦ãã¾ãã - ä¸é¨ã®æ¼ç®åã«ã¯ãåªå
é ä½ã®é«ãæ¼ç®åãçæããå¼ãããçãå¼ãè¦æ±ãããç¹å®ã®ãªãã©ã³ããããã¾ããä¾ãã°ãã¡ã³ãã¼ã¢ã¯ã»ã¹
.ï¼åªå é ä½ 17ï¼ã®å³å´ã¯ãã°ã«ã¼ãåãããå¼ã§ã¯ãªãèå¥åã§ãªããã°ãªãã¾ãããã¢ãã¼=>ï¼åªå é ä½ 2ï¼ã®å·¦å´ã¯ãä»»æã®å¼ã§ã¯ãªã弿°ãªã¹ãã¾ãã¯åä¸ã®èå¥åã§ãªããã°ãªãã¾ããã - ä¸é¨ã®æ¼ç®åã«ã¯ãåªå
é ä½ã®é«ãæ¼ç®åãçæããå¼ãããåºãå¼ãåãå
¥ããç¹å®ã®ãªãã©ã³ããããã¾ããä¾ãã°ããã©ã±ããè¨æ³
[ ⦠]ï¼åªå é ä½ 17ï¼ã§å²ã¾ããå¼ã¯ãã«ã³ãï¼åªå é ä½ 1ï¼ã§çµåãããå¼ãå«ãä»»æã®å¼ã«ãããã¨ãã§ãã¾ãããããã®æ¼ç®åã¯ããã®ãªãã©ã³ãããèªåçã«ã°ã«ã¼ãåãããããã®ããã«åä½ãã¾ãããã®å ´åã®çµåæ§ã¯çç¥ãã¦ãã¾ãã
| åªå é ä½ | çµåæ§ | åã ã®æ¼ç®å | åè |
|---|---|---|---|
| 18: ã°ã«ã¼ãå | ãªã | ã°ã«ã¼ãå(x) |
[1] |
| 17: ã¢ã¯ã»ã¹ã¨å¼ã³åºã | å·¦âå³ | ã¡ã³ãã¼ã¢ã¯ã»ã¹x.y |
[2] |
ãªãã·ã§ãã«ãã§ã¼ã³x?.y |
|||
| ãªã |
è¨ç®å¤ã«ããã¡ã³ãã¼ã¢ã¯ã»ã¹x[y]
|
[3] | |
弿°ãªã¹ãä»ãã® newnew x(y) |
[4] | ||
颿°å¼ã³åºãx(y)
|
|||
import(x) |
|||
| 16: new | ãªã | 弿°ãªã¹ããªãã® newnew x |
|
| 15: å¾ç½®æ¼ç®å | ãªã |
å¾ç½®ã¤ã³ã¯ãªã¡ã³ãx++
|
[5] |
å¾ç½®ãã¯ãªã¡ã³ãx--
|
|||
| 14: åç½®æ¼ç®å | ãªã |
åç½®ã¤ã³ã¯ãªã¡ã³ã++x
|
[6] |
åç½®ãã¯ãªã¡ã³ã--x
|
|||
è«çå¦å®!x
|
|||
ãããå¦å®~x
|
|||
åé
ãã©ã¹+x
|
|||
åé
ãã¤ãã¹-x
|
|||
typeof x |
|||
void x |
|||
delete x |
[7] | ||
await x |
|||
| 13: ã¹ãä¹ | å³âå·¦ |
ã¹ãä¹x ** y
|
[8] |
| 12: 乿³çæ¼ç®å | å·¦âå³ |
ä¹ç®x * y
|
|
é¤ç®x / y
|
|||
å°ä½x % y
|
|||
| 11: å ç®çæ¼ç®å | å·¦âå³ |
å ç®x + y
|
|
æ¸ç®x - y
|
|||
| 10: ãããã·ãã | å·¦âå³ |
å·¦ã·ããx << y
|
|
å³ã·ããx >> y
|
|||
符å·ãªãå³ã·ããx >>> y
|
|||
| 9: é¢ä¿æ¼ç®å | å·¦âå³ |
å°ãªãx < y
|
|
å°ãªãã¤ã³ã¼ã«x <= y
|
|||
大ãªãx > y
|
|||
大ãªãã¤ã³ã¼ã«x >= y
|
|||
x in y |
|||
x instanceof y |
|||
| 8: çä¾¡æ§æ¼ç®å | å·¦âå³ |
ç価x == y
|
|
ä¸ç価x != y
|
|||
å³å¯ç価x === y
|
|||
å³å¯ä¸ç価x !== y
|
|||
| 7: ãããè«çç© | å·¦âå³ |
ãããè«çç©x & y
|
|
| 6: ãããæä»çè«çå | å·¦âå³ |
ãããæä»çè«çåx ^ y
|
|
| 5: ãããè«çå | å·¦âå³ |
ãããè«çåx | y
|
|
| 4: è«çç© | å·¦âå³ |
è«çç©x && y
|
|
| 3: è«çåããã«å¤åä½ | å·¦âå³ |
è«çåx || y
|
|
ãã«å¤åä½x ?? y
|
[9] | ||
| 2: ä»£å ¥ã¨ãã®ä» | å³âå·¦ |
代å
¥x = y
|
[10] |
å ç®ä»£å
¥x += y
|
|||
æ¸ç®ä»£å
¥x -= y
|
|||
ã¹ãä¹ä»£å
¥x **= y
|
|||
ä¹ç®ä»£å
¥x *= y
|
|||
é¤ç®ä»£å
¥x /= y
|
|||
å°ä½ä»£å
¥x %= y
|
|||
å·¦ã·ãã代å
¥x <<= y
|
|||
å³ã·ãã代å
¥x >>= y
|
|||
符å·ãªãå³ã·ãã代å
¥x >>>= y
|
|||
ãããè«çç©ä»£å
¥x &= y
|
|||
ãããæä»çè«çå代å
¥x ^= y
|
|||
ãããè«çå代å
¥x |= y
|
|||
è«çç©ä»£å
¥x &&= y
|
|||
è«çå代å
¥x ||= y
|
|||
ãã«å¤åä½ä»£å
¥x ??= y
|
|||
| å³âå·¦ |
æ¡ä»¶ï¼ä¸é
ï¼æ¼ç®åx ? y : z
|
[11] | |
| å³âå·¦ |
ã¢ãã¼x => y
|
[12] | |
| ãªã | yield x |
||
yield* x |
|||
ã¹ãã¬ãã...x
|
[13] | ||
| 1: ã«ã³ã | å·¦âå³ |
ã«ã³ãæ¼ç®åx, y
|
注é:
- ãªãã©ã³ãã¯ä»»æã®å¼ã«ãããã¨ãã§ãã¾ãã
- ãå³è¾ºãã¯èå¥åã§ ãªããã°ãªãã¾ããã
- ãå³è¾ºãã¯ä»»æã®å¼ã«ãããã¨ãã§ãã¾ãã
- ãå³è¾ºãã¯ãåªå
é ä½ã 1 ãã大ããï¼ã¤ã¾ãã«ã³ãå¼ã§ã¯ãªãï¼ä»»æã®å¼ã®ã«ã³ãåºåããªã¹ãã§ãã
newå¼ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãªãã·ã§ã³ãã§ã¼ã³ã«ãããã¨ã¯ã§ãã¾ããã - ãªãã©ã³ãã¯æå¹ãªä»£å
¥å¯¾è±¡ï¼èå¥åã¾ãã¯ããããã£ã¢ã¯ã»ã¹ï¼ã§ãªããã°ãªãã¾ããããã®åªå
é ä½ã§ã¯ã
new Foo++ã¯(new Foo)++ï¼æ§æã¨ã©ã¼ï¼ã¨ãªããnew (Foo++)(a TypeError: (Foo++) is not a constructor) ã¨ã¯ãªãã¾ããã - ãªãã©ã³ãã¯æå¹ãªä»£å ¥å¯¾è±¡ï¼èå¥åã¾ãã¯ããããã£ã¢ã¯ã»ã¹ããï¼ã§ãªããã°ãªãã¾ããã
- ãªãã©ã³ãã¯èå¥åã¾ãã¯ãã©ã¤ãã¼ãè¦ç´ ã¸ã®ã¢ã¯ã»ã¹ã¨ãããã¨ã¯ã§ãã¾ããã
- 左辺ã¯åªå é ä½ 14 ã«ãªããã¨ã¯ã§ãã¾ããã
- ãªãã©ã³ãã¯ãã°ã«ã¼ãåããã¦ããªãè«çå
||ã¾ãã¯è«çç©&&æ¼ç®åã«ãããã¨ã¯ã§ãã¾ããã - ã左辺ãã¯æå¹ãªä»£å ¥å¯¾è±¡ï¼èå¥åã¾ãã¯ããããã£ã¢ã¯ã»ã¹ã§ããï¼ã§ãªããã°ãªãã¾ããã
- ãã®çµåæ§ã¯ã
?ã®å¾ã® 2 ã¤ã®å¼ãæé»çã«ã°ã«ã¼ãåãããã¨ãããã¨ã§ãã - ã左辺ãã¯åä¸ã®èå¥åã¾ãã¯æ¬å¼§ã§å²ã¾ãã弿°ãªã¹ãã§ãã
- ãªãã¸ã§ã¯ããªãã©ã«ãé åãªãã©ã«ã弿°ãªã¹ãå ã§ã®ã¿æå¹ã§ãã
ã°ã«ã¼ã 17 㨠16 ã®åªå é ä½ã¯ããææ§ããããã¾ãããæç¢ºã«ããããã«ãããã¤ãä¾ãæãã¾ãã
- ãªãã·ã§ã³ãã§ã¼ã³ã¯ã常ã«ãªãã·ã§ã³æ§ã®ãªã対å¿ããæ§æã¨ç½®ãæãå¯è½ã§ãï¼ãªãã·ã§ã³ãã§ã¼ã³ãç¦æ¢ãããããã¤ãã®ç¹æ®ãªã±ã¼ã¹ãé¤ãï¼ãä¾ãã°ã
a?.bãåãå ¥ããå ´æã¯ãã¹ã¦a.bãåãå ¥ãããã®éãåæ§ã§ããåæ§ã«ãa?.()ã¨a()ãäºææ§ãããã¾ãã - ã¡ã³ãã¼å¼ã¨è¨ç®ãããã¡ã³ãã¼å¼ã¯å¸¸ã«ããããã®äºãã«ç½®ãæãå¯è½ã§ãã
- å¼ã³åºãå¼ã¨
import()å¼ã¯ã常ã«äºãã«ç½®ãæãå¯è½ã§ãã - ããã§ãã¡ã³ãã¼ã¢ã¯ã»ã¹ã弿°ä»ãã®
newã颿°å¼ã³åºãã弿°ç¡ãã®newã® 4 ã¤ã®å¼ã®åé¡ã示ãã¦ããã¾ãã- ã¡ã³ãã¼ã¢ã¯ã»ã¹ã®ã左辺ãã¯ãã¡ã³ãã¼ã¢ã¯ã»ã¹ (
a.b.c)ã弿°ä»ãã®æ°ãããªãã¸ã§ã¯ãçæ (new a().b)ã颿°å¼ã³åºã (a().b) ãªã©ã«ãããã¨ãã§ãã¾ãã - 弿°ä»ã
newã®ã左辺ãã¯ãã¡ã³ãã¼ã¢ã¯ã»ã¹ (new a.b()) ããã³å¼æ°ä»ãnew(new new a()()) ãªã©ã«ãããã¨ãã§ãã¾ãã - 颿°å¼ã³åºãã®ã左辺ãã¯ãã¡ã³ãã¼ã¢ã¯ã»ã¹ (
a.b())ã弿°ä»ãnew(new a()())ã颿°å¼ã³åºã (a()()) ãªã©ã«ãããã¨ãã§ãã¾ãã - 弿°ãªãã®
newã®ãªãã©ã³ãã¯ãã¡ã³ãã¼ã¢ã¯ã»ã¹ (new a.b)ã弿°ä»ãnew(new new a())ã弿°ãªãnew(new new a) ãªã©ã«ãããã¨ãã§ãã¾ãã
- ã¡ã³ãã¼ã¢ã¯ã»ã¹ã®ã左辺ãã¯ãã¡ã³ãã¼ã¢ã¯ã»ã¹ (