å¼ã¨æ¼ç®å
ãã®ç« ã§ã¯ JavaScript ã®å¼ (expression) ãæ¼ç®å (operator) ã«ã¤ãã¦ãä»£å ¥ãæ¯è¼ãç®è¡ãããããè«çãæååãä¸é æ¼ç®åãªã©ã説æãã¦ãã¾ãã
é«ãã¬ãã«ã§ã¯ãå¼ ã¯å¤ã«è§£æ±ºããã³ã¼ãã®æå¹ãªåä½ã§ããå¼ã«ã¯ ï¼å¤ãä»£å ¥ãããªã©ã®ï¼å¯ä½ç¨ããããã®ã¨ãç´ç²ã« è©ä¾¡ ãè¡ããã®ã® 2 種é¡ãããã¾ãã
x = 7 ã¨ããå¼ã¯åè
ã®ä¾ã§ãããã®å¼ã¯ = æ¼ç®å ã使ç¨ãã¦ã夿° x ã«å¤ 7 ã代å
¥ãã¦ãã¾ãããã®å¼èªä½ã¯ 7 ã¨è©ä¾¡ããã¾ãã
3 + 4 ã¨ããå¼ã¯å¾è
ã®ä¾ã§ãããã®å¼ã¯ + æ¼ç®åã使ç¨ã㦠3 㨠4 ãå ç®ããå¤ã¨ã㦠7 ãçã¿åºãã¾ãããããããããããæçµçã«å¤§ããªæ§æè¦ç´ ï¼ä¾ãã°ãconst z = 3 + 4 ã®ãããªå¤æ°å®£è¨ï¼ã®ä¸é¨ã§ãªããã°ããã®çµæã¯ããã«ç ´æ£ããã¾ããè©ä¾¡ãä½ã®å¹æããããããªãã®ã§ãããã¯é常ããã°ã©ãã¼ã®ãã¹ã§ãã
ä¸ã®ä¾ã§ã示ããããã«ããã¹ã¦ã®è¤éãªå¼ã¯ = ã + ãªã©ã® æ¼ç®å ã§çµåããã¦ãã¾ãããã®ç¯ã§ã¯ã以ä¸ã®æ¼ç®åãç´¹ä»ãã¾ãã
- ä»£å ¥æ¼ç®å
- æ¯è¼æ¼ç®å
- ç®è¡æ¼ç®å
- ãããæ¼ç®å
- è«çæ¼ç®å
- é·æ´æ°æ¼ç®å
- æååæ¼ç®å
- æ¡ä»¶ï¼ä¸é ï¼æ¼ç®å
- ã«ã³ãæ¼ç®å
- åé æ¼ç®å
- é¢ä¿æ¼ç®å
ãããã®æ¼ç®åã¯ãããé«ãåªå é ä½ã®æ¼ç®åããåºæ¬çãªå¼ã® 1 ã¤ã«ãã£ã¦å½¢æããããªãã©ã³ããçµåãã¾ããæ¼ç®åã¨å¼ã®å®å ¨ã§è©³ç´°ãªãªã¹ãã¯ããªãã¡ã¬ã³ã¹ã«æ²è¼ããã¦ãã¾ãã
æ¼ç®åã® åªå é ä½ ã¯ãå¼ãè©ä¾¡ããéã«æ¼ç®åãè©ä¾¡ããé åºã決å®ãã¾ããä¾ãã°æ¬¡ã®ä¾ãã覧ãã ããã
const x = 1 + 2 * 3;
const y = 2 * 3 + 1;
* 㨠+ ã®é åºãç°ãªãã«ãããããããã©ã¡ãã®å¼ã 7 ã¨ããçµæã«ãªãã¾ãããªããªãã * 㯠+ ãããåªå
ãããã®ã§ã * ã¨çµåãããå¼ãå¸¸ã«æåã«è©ä¾¡ãããããã§ããæ¼ç®åã®åªå
é ä½ã䏿¸ãããã«ã¯ãæ¬å¼§ã使ç¨ãã¾ãï¼ã°ã«ã¼ãåå¼ - åºæ¬çãªå¼ã使ãã¾ãï¼ãæ¼ç®åã®åªå
é ä½ã®å®å
¨ãªè¡¨ã¨æ§ã
ãªæ³¨æç¹ãè¦ãã«ã¯ãæ¼ç®åã®åªå
é ä½ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ãåç
§ãã¦ãã ããã
JavaScript 㯠äºé æ¼ç®å ã åé æ¼ç®å ãå®è£ ãã¦ãããããã«ã¯ç¹æ®ãªä¸é æ¼ç®åã§ããæ¡ä»¶æ¼ç®åãå®è£ ãã¦ãã¾ãã äºé æ¼ç®åã¯æ¬¡ã®ããã«ãæ¼ç®åã®åã¨æ¼ç®åã®å¾ã« 2 ã¤ã®ãªãã©ã³ã (operand) ãå¿ è¦ã¨ãªãã¾ãã
ãªãã©ã³ã1 æ¼ç®å ãªãã©ã³ã2
ä¾ãã° 3 + 4 ã x * y ã§ãããã®å½¢å¼ã¯ãæ¼ç®åã 2 ã¤ã®ãªãã©ã³ãã®éã«é
ç½®ãããããã infix äºé
æ¼ç®åã¨å¼ã°ãã¾ããJavaScript ã§ä½¿ç¨ããããã¹ã¦ã®äºé
æ¼ç®å㯠infix ã§ãã
åé æ¼ç®åã¯æ¼ç®åã®åå¾ããããã«ã 1 ã¤ã®ãªãã©ã³ããå¿ è¦ã§ãã
æ¼ç®å ãªãã©ã³ã ãªãã©ã³ã æ¼ç®å
ä¾ãã° x++ ã ++x ã§ããæ¼ç®å ãªãã©ã³ã ã®å½¢ã åç½® åé
æ¼ç®åããªãã©ã³ã æ¼ç®å ã®å½¢ã å¾ç½® åé
æ¼ç®åã¨å¼ã³ã¾ããJavaScript ã§ã¯å¾ç½®æ¼ç®å㯠++ 㨠-- ã ãã§ãã! ã typeof ãªã©ãä»ã®ãã¹ã¦ã®æ¼ç®åã¯åç½®åã§ãã
ä»£å ¥æ¼ç®å
代å
¥æ¼ç®åã¯å³ãªãã©ã³ãã®å¤ãå
ã«ãå·¦ã®ãªãã©ã³ãã¸å¤ã代å
¥ãããã®ã§ãã
åç´ãªä»£å
¥æ¼ç®åã¯ã¤ã³ã¼ã« (=) ããããå³ãªãã©ã³ãã®å¤ãå·¦ãªãã©ã³ãã¸ä»£å
¥ãã¾ãã
ã¤ã¾ãã x = f() 㯠f() ã®å¤ã x ã¸ä»£å
¥ãã代å
¥å¼ã§ãã
次ã®è¡¨ã«ã¾ã¨ãããã¦ããããã«ãæ¼ç®åãçç¥è¡¨è¨ããè¤åä»£å ¥æ¼ç®åãããã¾ãã
| åå | ç¥è¨æ¼ç®å | æå³ |
|---|---|---|
| ä»£å ¥ | x = f() |
x = f() |
| å ç®ä»£å ¥ | x += f() |
x = x + f() |
| æ¸ç®ä»£å ¥ | x -= f() |
x = x - f() |
| ä¹ç®ä»£å ¥ | x *= f() |
x = x * f() |
| é¤ç®ä»£å ¥ | x /= f() |
x = x / f() |
| å°ä½ä»£å ¥ | x %= f() |
x = x % f() |
| ã¹ãä¹ä»£å ¥ | x **= f() |
x = x ** f() |
| å·¦ã·ããä»£å ¥ | x <<= f() |
x = x << f() |
| å³ã·ããä»£å ¥ | x >>= f() |
x = x >> f() |
| 符å·ãªãå³ã·ããä»£å ¥ | x >>>= f() |
x = x >>> f() |
| ãããè«çç© (AND) ä»£å ¥ | x &= f() |
x = x & f() |
| ãããæä»çè«çå (XOR) ä»£å ¥ | x ^= f() |
x = x ^ f() |
| ãããè«çå (OR) ä»£å ¥ | x |= f() |
x = x | f() |
| è«çç© (AND) ä»£å ¥ | x &&= f() |
x && (x = f()) |
| è«çå (OR) ä»£å ¥ | x ||= f() |
x || (x = f()) |
| ãã«å¤åä½ä»£å ¥ | x ??= f() |
x ?? (x = f()) |
ããããã£ã¸ã®ä»£å ¥
ããå¼ããªãã¸ã§ã¯ãã¨ãã¦è©ä¾¡ãããå ´åãä»£å ¥å¼ã®å·¦è¾ºããã®å¼ã®ããããã£ã¸ã®ä»£å ¥ã«ãããã¨ãã§ãã¾ããä¾ãã°æ¬¡ã®ããã«ãªãã¾ãã
const obj = {};
obj.x = 3;
console.log(obj.x); // 3 ã¨è¡¨ç¤º
console.log(obj); // { x: 3 } ã¨è¡¨ç¤º
const key = "y";
obj[key] = 5;
console.log(obj[key]); // 5 ã¨è¡¨ç¤º
console.log(obj); // { x: 3, y: 5 } ã¨è¡¨ç¤º
ãªãã¸ã§ã¯ãã«ã¤ãã¦è©³ããã¯ããªãã¸ã§ã¯ãã§ã®ä½æ¥ãèªãã§ãã ããã
å¼ããªãã¸ã§ã¯ãã¨ãã¦è©ä¾¡ãããªãå ´åã¯ããã®å¼ã®ããããã£ã¸ã®ä»£å ¥ã¯è¡ããã¾ããã
const val = 0;
val.x = 3;
console.log(val.x); // undefined ã¨è¡¨ç¤º
console.log(val); // 0 ã¨è¡¨ç¤º
峿 ¼ã¢ã¼ãã§ã¯ãããªããã£ãã®ããããã£ã«ä»£å ¥ãããã¨ãã§ããªããããä¸è¨ã®ã³ã¼ãã¯ä¾å¤ãçºçãã¾ãã
夿´ã§ããªãããããã£ããããããã£ãæããªãå¼ã®ããããã£ï¼null ã undefinedï¼ã«å¤ã代å
¥ãããã¨ããã¨ã¨ã©ã¼ã¨ãªãã¾ãã
æ§é åè§£
ããè¤éãªä»£å ¥æ¹æ³ãæ§é åè§£æ§æã¯ãé åããªãã¸ã§ã¯ãã®ãªãã©ã«æ§é ãåæ ããæ§æãç¨ãã¦ãé åããªãã¸ã§ã¯ããããã¼ã¿ãæ½åºãããã¨ãã§ãã JavaScript ã®å¼ã§ãã
æ§é åè§£ãããªãã¨ãé åããªãã¸ã§ã¯ãããå¤ãåãåºãã®ã«è¤æ°ã®æãå¿ è¦ã«ãªãã¾ãã
const foo = ["one", "two", "three"];
const one = foo[0];
const two = foo[1];
const three = foo[2];
æ§é åè§£ã使ç¨ããã¨ãåä¸ã®æã§è¤æ°ã®å¤ãå¥ã ã®å¤æ°ã«æ½åºãããã¨ãã§ãã¾ãã
const [one, two, three] = foo;
è©ä¾¡ã¨ãã¹ã
ä¸è¬ã«ã代å
¥ã¯å¤æ°å®£è¨ã®ä¸ã§ï¼ããªãã¡ã const, let, var ã¨ä¸ç·ã«ï¼ãã¾ãã¯ç¬ç«ããæã¨ãã¦ä½¿ç¨ããã¾ãã
// 夿° x ã宣è¨ãã f() ã®è¿å¤ã§åæåãã¾ãã
// x = f() ã®ä»£å
¥å¼ã®è¿å¤ã¯ç ´æ£ããã¾ãã
let x = f();
x = g(); // 夿° x ã« g() ã®è¿å¤ãå代å
¥ãã¾ãã
ããããä»ã®å¼ã¨åæ§ã«ãx = f() ã®ãããªä»£å
¥å¼ãçµæå¤ã¨ãã¦è©ä¾¡ããã¾ãã
ãã®çµæã®å¤ã¯é常ã¯ä½¿ç¨ããã¾ããããå¥ã®å¼ã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
ä»£å ¥ãé£éãããããä»ã®å¼ã§ä»£å ¥ãå ¥ãåã«ããã¨ãé©ããããªåä½ã«ãªããã¨ãããã¾ãã ãã®ããã JavaScript ã®ã¹ã¿ã¤ã«ã¬ã¤ãã«ãã£ã¦ã¯ãä»£å ¥ã®é£éãå ¥ãåãé£éãå ¥ãåã®ä»£å ¥ã鿍奍ã¨å®ãã¦ãããã¨ãããã¾ããï¼ ã¨ã¯ãããä»£å ¥ã®é£éãå ¥ãåãçºçãããã¨ãããã®ã§ãããããã©ã®ããã«åä½ããã®ãçè§£ã§ããããã«ãã¦ãããã¨ã¯éè¦ã§ãã
ä»£å ¥å¼ãé£éããããå ¥ãåã«ããããããã¨ã§ããã®çµæèªä½ãå¥ã®å¤æ°ã«ä»£å ¥ãããã¨ãã§ãã¾ãã ã¾ãããã°ã«è¨é²ããããé åãªãã©ã«ã颿°å¼ã³åºãã®ä¸ã«å ¥ããããããã¨ãå¯è½ã§ãã
let x;
const y = (x = f()); // ã¾ã㯠const y = x = f(); ã¨åç
console.log(y); // assignment x = f() ã®è¿å¤ãåºå
console.log(x = f()); // è¿å¤ãç´æ¥åºå
// 代å
¥å¼ã¯ãé
åãªãã©ã«ã®è¦ç´ ã颿°å¼ã³åºãã®å¼æ°ãªã©ã
// ä¸è¬ã«å¼ã許ãããå ´æã§ããã°ã©ãã§ãå
¥ãåã«ãããã¨ã
// ã§ãã¾ãã
console.log([0, x = f(), 0]);
console.log(f(0, x = f(), 0));
è©ä¾¡çµæã¯ãä¸ã®è¡¨ã®ãæå³ãã®æ¬ã® = è¨å·ã®å³å´ã«ããå¼ã«ä¸è´ãã¾ããã¤ã¾ãã x = f() 㯠f() ã®çµæã«ãx += f() ã¯çµæã®å x + f() ã«ã x **= f() ã¯çµæã®ã¹ãä¹ x ** f() ã«è©ä¾¡ããããã¨ãã£ãå
·åã«ãªãã¾ãã
è«ç代å
¥ã®å ´åã x &&= f(), x ||= f(), x ??= f() ã¯ï¼ãããã代å
¥ãé¤ããè«çæ¼ç®ã®è¿å¤ãªã®ã§ã x && f(), x || f(), x ?? f() ã¨ãªãã¾ãã
ãããã®å¼ãæ¬å¼§ãé åãªãã©ã«ã®ãããªã°ã«ã¼ãåæ¼ç®åãªãã§é£çµããå ´åãä»£å ¥å¼ã¯å³ããå·¦ã¸ã°ã«ã¼ãåããã¾ãï¼å³çµåã§ãï¼ããå·¦ããå³ã¸è©ä¾¡ããã¾ãã
ã¾ãã = 以å¤ã®ãã¹ã¦ã®ä»£å
¥æ¼ç®åã§ã¯ãçµæã®å¤ã¯å¸¸ã«æ¼ç®åã®ãªãã©ã³ãã®å¤ã«åºã¥ãã¦ãããã¨ã«æ³¨æãã¦ãã ããã
ä¾ãã°ã次ã®ãããªé¢æ° f 㨠gã夿° x 㨠y ã宣è¨ããã¦ããã¨ä»®å®ãã¾ãã
function f() {
console.log("F!");
return 2;
}
function g() {
console.log("G!");
return 3;
}
let x, y;
ãã® 3 ã¤ã®ä¾ãèãã¦ã¿ã¾ãããã
y = x = f();
y = [f(), x = g()];
x[f()] = g();
è©ä¾¡ä¾ 1
y = x = f() 㯠y = (x = f()) ã¨åãã§ãã
= ã¯å³çµåã ããã§ãã
ããããè©ä¾¡ã¯å·¦ããå³ã¸è¡ããã¾ãã
- 代å
¥å¼
y = x = f()ã®è©ä¾¡ãå§ã¾ãã¾ãã- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
yã¯ã夿°yã¸ã®åç §ã¨ãã¦è©ä¾¡ããã¾ãã - 代å
¥å¼
x = f()ã®è©ä¾¡ãå§ã¾ãã¾ãã- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
xã¯ãxã¨ããååã®å¤æ°ã¸ã®åç §ã¨ãã¦è©ä¾¡ããã¾ãã - 颿°å¼ã³åºã
f()ã§ã³ã³ã½ã¼ã«ã« "F!" ã¨è¡¨ç¤ºããæ¬¡ã«æ°å¤2ã¨è©ä¾¡ããã¾ãã 2ãf()ã®çµæã¨ãªãxã«ä»£å ¥ããã¾ãã
- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
- 代å
¥å¼
x = f()ã®è©ä¾¡ãçµããã¾ããã ãã®çµæã¯ãxã®æ°ããå¤ãããªãã¡2ã§ãã - ãã®çµæ
2ãyã«ãä»£å ¥ããã¾ãã
- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
- 代å
¥å¼
y = x = f()ã®è©ä¾¡ãçµããã¾ããã ãã®çµæã¯yã®æ°ããå¤ã§ãããã¯2ã¨ãªãã¾ããxã¨yã¯2ãä»£å ¥ãããã³ã³ã½ã¼ã«ã«ã¯ "F!" ã¨è¡¨ç¤ºããã¾ããã
è©ä¾¡ä¾ 2
y = [ f(), x = g() ] ãå·¦ããå³ã¸è©ä¾¡ãè¡ããã¾ãã
- 代å
¥å¼
y = [ f(), x = g() ]ã®è©ä¾¡ãå§ã¾ãã¾ãã- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
yã¯ã夿°yã¸ã®åç §ã¨ãã¦è©ä¾¡ããã¾ãã - å
å´ã®é
åãªãã©ã«
[ f(), x = g() ]ã®è©ä¾¡ãå§ã¾ãã¾ãã- 颿°å¼ã³åºã
f()ã§ã³ã³ã½ã¼ã«ã« "F!" ã¨è¡¨ç¤ºããæ¬¡ã«æ°å¤2ã¨è©ä¾¡ããã¾ãã - 代å
¥å¼
x = g()ã®è©ä¾¡ãå§ã¾ãã¾ãã- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
xã¯ãxã¨ããååã®å¤æ°ã¸ã®åç §ã¨ãã¦è©ä¾¡ããã¾ãã - 颿°å¼ã³åºã
g()ã§ã³ã³ã½ã¼ã«ã« "G!" ã¨è¡¨ç¤ºããæ¬¡ã«æ°å¤3ã¨è©ä¾¡ããã¾ãã 3ãg()ã®çµæã¨ãªãxã«ä»£å ¥ããã¾ãã
- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
- 代å
¥å¼
x = g()ã®è©ä¾¡ãçµããã¾ããã ãã®çµæã¯ãxã®æ°ããå¤ãããªãã¡3ã§ãã ãã®3ã®çµæã¯ãå å´ã®é åãªãã©ã«ã®æ¬¡ã®è¦ç´ ã«ãªãã¾ãï¼f()ã®2ã®å¾ã§ãï¼ã
- 颿°å¼ã³åºã
- å
å´ã®é
åãªãã©ã«
[ f(), x = g() ]ã®è©ä¾¡ãçµããã¾ããã çµæã¯ 2 ã¤ã®å¤ãæã¤é åã[ 2, 3 ]ã§ãã - ãã®é
å
[ 2, 3 ]ãy
- ãã®ä»£å
¥ã®å·¦è¾ºã«ãã
- 代å
¥å¼
y = [ f(), x = g() ]ã®è©ä¾¡ãçµããã¾ããã çµæã¨ãã¦yãæ°ããå¤ã[ 2, 3 ]ã«ãªãã¾ããxã«ã¯3ãä»£å ¥ããã¾ãããyã«ã¯[ 2, 3 ]ãä»£å ¥ãããã³ã³ã½ã¼ã«ã«ã¯ "F!" ã®å¾ã« "G!" ã表示ããã¾ãã
è©ä¾¡ä¾ 3
x[f()] = g() ãå·¦ããå³ã¸è©ä¾¡ããã¾ãã
ï¼ãã®ä¾ã§ã¯ x ã«ã¯æ¢ã«ä½ããã®ãªãã¸ã§ã¯ãã代å
¥ããã¦ããã¨æ³å®ãã¦ãã ããã
ãªãã¸ã§ã¯ãã«ã¤ãã¦è©³ããã¯ããªãã¸ã§ã¯ãã§ã®ä½æ¥ããèªã¿ãã ããã
- 代å
¥å¼
x[f()] = g()ã®è©ä¾¡ãå§ã¾ãã¾ãã- ãã®ä»£å
¥ã«ããã代å
¥ã®å·¦è¾ºã®
x[f()]ããããã£ã¢ã¯ã»ã¹ã®è©ä¾¡ãå§ã¾ãã¾ãã- ãã®ããããã£ã¢ã¯ã»ã¹ã®
xã¯ãxã¨ããååã®å¤æ°ã¸ã®åç §ã¨ãã¦è©ä¾¡ããã¾ãã - ããã¦ã颿°å¼ã³åºã
f()ã§ã³ã³ã½ã¼ã«ã« "F!" ã¨è¡¨ç¤ºããæ¬¡ã«æ°å¤2ã¨è©ä¾¡ããã¾ãã
- ãã®ããããã£ã¢ã¯ã»ã¹ã®
- ãã®ä»£å
¥ã«ããã
x[f()]ããããã£ã¢ã¯ã»ã¹ã®è©ä¾¡ãçµããã¾ããã çµæã¯å¤æ°ããããã£åç §ã§ããx[2]ã§ãã - ããã¦ã颿°å¼ã³åºã
g()ã§ã³ã³ã½ã¼ã«ã« "G!" ã¨è¡¨ç¤ºããæ¬¡ã«æ°å¤3ã¨è©ä¾¡ããã¾ãã 3ãx[2]ã«ä»£å ¥ããã¾ãã ï¼ãã®éç¨ã¯xã«ãªãã¸ã§ã¯ããä»£å ¥ããã¦ããã¨ãã®ã¿æåãã¾ããï¼
- ãã®ä»£å
¥ã«ããã代å
¥ã®å·¦è¾ºã®
- 代å
¥å¼
x[f()] = g()ã®è©ä¾¡ãçµããã¾ããã è¿å¤ã¯x[2]ã®æ°ããå¤â ããã§ã¯3ã§ããx[2]ã«ã¯3ãä»£å ¥ãããã³ã³ã½ã¼ã«ã«ã¯ "F!" ã«ç¶ã㦠"G!" ã表示ããã¾ãã
ä»£å ¥é£éã®é²æ¢
ä»£å ¥ãé£éãããããä»ã®å¼ã«ä»£å ¥ãå ¥ãåã«ããã¨ãæå¤ãªåä½ããããã¨ãããã¾ãããã®ãããåãæã®ä¸ã§ä»£å ¥ãé£éããããã¨ã¯æ¨å¥¨ããã¾ããã
ç¹ã«ã constãletãvar æã®ä¸ã«å¤æ°é£éãå
¥ããã¨ããã°ãã°ãã¾ãè¡ããªããªãã¾ãã代å
¥é£éã®ä¸ã§ä¸çªå¤å´/å·¦å´ã®å¤æ°ã ãã宣è¨ãããä»ã®å¤æ°ã¯ const/let/var æã§ã¯å®£è¨ãããªãããã§ããä¾ãã°ã
const z = y = x = f();
ãã®æã¯ä¸è¦ããã¨ã夿° x, y, z ã宣è¨ãã¦ããããã«è¦ãã¾ãã
ããããå®éã«å®£è¨ãã¦ããã®ã¯å¤æ° z ã ãã§ãã
y 㨠x ã¯åå¨ããªã夿°ã¸ã®ç¡å¹ãªåç
§ã§ãããï¼å³æ ¼ã¢ã¼ã ã®å ´åï¼ããã£ã¨æªããã¨ã«ã¯ã峿 ¼ã¢ã¼ãã§ãªãå ´å㯠x 㨠y ã«å¯¾ãã¦ã°ãã¼ãã«å¤æ°ãæã«çæãã¦ãã¾ããã¨ã«ãªãã®ã§ãã
æ¯è¼æ¼ç®å
æ¯è¼æ¼ç®åã¯ãªãã©ã³ããæ¯è¼ãã¦ããã®çµæãçã§ãããã«åºã¥ãã¦è«çå¤ãè¿ãã¾ãã
ãªãã©ã³ãã«ã¯æ°å¤ãæååãè«çå¤ããªãã¸ã§ã¯ãã使ç¨ã§ãã¾ãã
æåå㯠Unicode ã®å¤ãç¨ããæ¨æºçãªè¾æ¸é ã«åºã¥ãã¦æ¯è¼ããã¾ãã
ã»ã¨ãã©ã®å ´åã2 ã¤ã®ãªãã©ã³ããç°ãªãåãªãã° JavaScript ã¯ãã®ãªãã©ã³ããæ¯è¼ã«é©ããåã«å¤æãããã¨ãã¾ãã
ããããæåã«ãããä¸è¬çã«ãªãã©ã³ãã¯æ°å¤çã«æ¯è¼ãããçµæã¨ãªãã¾ãã
ãã®ã«ã¼ã«ã®å¯ä¸ã®ä¾å¤ã¯ === ããã³ !== ã§ããããã¯ãå³å¯ã«ãçå¤ãå¦ãã夿ããç夿§ããã§ãã¯ããåã«ãªãã©ã³ããé©åããåã«å¤æãã¾ããã
次ã®è¡¨ã§ã¯ã以ä¸ã®ãµã³ãã«ã³ã¼ãã§å®ç¾©ããã夿°ãåæã¨ãã¦æ¯è¼æ¼ç®åã説æãã¦ããã¾ãã
const var1 = 3;
const var2 = 4;
| æ¼ç®å | 説æ | true ãè¿ãä¾ |
|---|---|---|
ç価 (==)
|
ãªãã©ã³ããçããå ´åã« true ãè¿ãã¾ãã |
3 == var1
3 == '3'
|
ä¸ç価 (!=)
|
ãªãã©ã³ããçãããªãå ´åã« true ãè¿ãã¾ãã |
var1 != 4
|
å³å¯ç価 (===)
|
ãªãã©ã³ããçããããã¤åãåã§ããå ´åã« true ãè¿ãã¾ãã
Object.is ãJavsScript ã§ã®ç価ãåç
§ãã¦ãã ããã
|
3 === var1 |
å³å¯ä¸ç価 (!==)
|
ãªãã©ã³ããåãåã§å¤ãçãããªãããåãç°ãªãå ´åã« true ãè¿ãã¾ãã
|
var1 !== "3"
|
大ãªã (>)
|
å·¦ã®ãªãã©ã³ããå³ã®ãªãã©ã³ãããã大ããå ´åã« true ãè¿ãã¾ãã
|
var2 > var1
|
以ä¸
(>=)
|
å·¦ã®ãªãã©ã³ããå³ã®ãªãã©ã³ã以ä¸ã§ããå ´åã« true ãè¿ãã¾ãã
|
var2 >= var1
|
å°ãªã
(<)
|
å·¦ã®ãªãã©ã³ããå³ã®ãªãã©ã³ããããå°ããå ´åã« true ãè¿ãã¾ãã
|
var1 < var2
|
以ä¸
(<=)
|
å·¦ã®ãªãã©ã³ããå³ã®ãªãã©ã³ã以ä¸ã§ããå ´åã« true ãè¿ãã¾ãã
|
var1 <= var2
|
ã¡ã¢:
=> ã¯æ¼ç®åã§ã¯ãªããã¢ãã¼é¢æ°ã表ãè¨æ³ã§ãã
ç®è¡æ¼ç®å
ç®è¡æ¼ç®åã¯ããªãã©ã³ãã¨ãã¦æ°å¤ï¼ãªãã©ã«ã¾ãã¯å¤æ°ï¼ãã¨ãã1 ã¤ã®æ°å¤ãè¿ãã¾ãã
æ¨æºçãªç®è¡æ¼ç®åã¯ãå ç® (+)ãæ¸ç® (-)ãä¹ç® (*)ãé¤ç® (/) ã§ãã
ãããã®æ¼ç®åã¯ãä»ã®ã»ã¨ãã©ã®ããã°ã©ãã³ã°è¨èªã§æµ®åå°æ°ç¹æ°ãç¨ããå ´åã¨åãããã«æ©è½ãã¾ãï¼ç¹ã«ã0 ã§é¤ç®ããã㨠Infinity ã«ãªããã¨ã«æ³¨æãã¦ãã ããï¼ãä¾ãã°ä»¥ä¸ã®ããã«ãªãã¾ãã
1 / 2; // 0.5
1 / 2 === 1.0 / 2.0; // true ã«ãªã
æ¨æºçãªç®è¡æ¼ç®å (+, -, *, /) ã«å ããããã« JavaScript ã§ã¯ã以ä¸ã®è¡¨ã§ç¤ºãç®è¡æ¼ç®åã使ç¨ã§ãã¾ãã
| æ¼ç®å | 説æ | ä¾ |
|---|---|---|
å°ä½ (%)
|
äºé æ¼ç®åã§ãã2 ã¤ã®ãªãã©ã³ãã§é¤ç®ããã¨ãã®ãæ´æ°ã®ä½ããè¿ãã¾ãã | 12 % 5 㯠2 ãè¿ãã¾ãã |
ã¤ã³ã¯ãªã¡ã³ã (++)
|
åé
æ¼ç®åã§ãããªãã©ã³ãã« 1 ãå ãã¾ããåç½®æ¼ç®å (++x) ã¨ãã¦ç¨ããã¨ããªãã©ã³ãã« 1 ãå ããå¾ã«ãã®å¤ãè¿ãã¾ããå¾ç½®æ¼ç®å (x++) ã¨ãã¦ç¨ããã¨ããªãã©ã³ãã« 1 ãå ããåã«ãã®å¤ãè¿ãã¾ãã
|
x ã 3 ã®å ´åã++x 㯠x ã« 4 ãè¨å®ã㦠4 ãè¿ãã¾ãã䏿¹ãx++ 㯠3 ãè¿ããã㨠x ã« 4 ãè¨å®ãã¾ãã
|
ãã¯ãªã¡ã³ã (--)
|
åé æ¼ç®åã§ãããªãã©ã³ããã 1 ãå¼ãã¾ããè¿å¤ã¯ã¤ã³ã¯ãªã¡ã³ãæ¼ç®åã®ãã®ã¨åæ§ã§ãã |
x ã 3 ã®å ´åã--x 㯠x ã« 2 ãè¨å®ã㦠2 ãè¿ãã¾ãã䏿¹ãx-- 㯠3 ãè¿ããã㨠x ã« 2 ãè¨å®ãã¾ãã
|
åé
符å·å転 (-)
|
åé æ¼ç®åã§ãããªãã©ã³ãã®ç¬¦å·ãå転ãã¦ããã®å¤ãè¿ãã¾ãã | x ã 3 ã®ã¨ãã-x 㯠-3 ãè¿ãã¾ãã |
åé
ãã©ã¹ (+)
|
åé æ¼ç®åã§ããæ°å¤ã§ãªããªãã©ã³ãã®æ°å¤ã¸ã®å¤æã試ã¿ã¾ãã |
|
ã¹ã乿¼ç®å (**)
|
åºæ°é¨ ã ææ°é¨ ä¹ãããã®ãè¨ç®ãã¾ãã
ããªãã¡ã åºæ°é¨^ææ°é¨ ã§ãã
|
2 ** 3 㯠8 ãè¿ãã¾ãã10 ** -1
㯠0.1 ãè¿ãã¾ãã
|
ãããæ¼ç®å
ãããæ¼ç®åã¯ããã®ãªãã©ã³ãã 10 鲿°ã 16 鲿°ã 8 鲿°ã§ã¯ãªãã 32 åã®ãããã®éå (0 㨠1) ã¨ãã¦æ±ãã¾ãã ä¾ãã°ã 10 鲿°ã® 9 ã® 2 é²è¡¨ç¾ã¯ 1001 ã§ãã ãããæ¼ç®åã¯ãã®ããã« 2 é²è¡¨ç¾ã«ããä¸ã§æ¼ç®ãè¡ãã¾ããã JavaScript ã«ããã¦æ¨æºçãªæ°å¤ãè¿ãã¾ãã
次ã®è¡¨ã¯ JavaScript ã®ãããæ¼ç®åã®æ¦è¦ã§ãã
| æ¼ç®å | ä½¿ç¨æ³ | 説æ |
|---|---|---|
| ãããè«çç© (AND) | a & b |
ãªãã©ã³ãã®å¯¾å¿ããããããã¨ãã« 1 ã§ããåãããã«ã¤ã㦠1 ãè¿ãã¾ãã |
| ãããè«çå (OR) | a | b |
ãªãã©ã³ãã®å¯¾å¿ããããããã¨ãã« 0 ã§ããåãããã«ã¤ã㦠0 ãè¿ãã¾ãã |
| ãããæä»çè«çå (XOR) | a ^ b |
ãªãã©ã³ãã®å¯¾å¿ããããããåãåãããã«ã¤ã㦠0 ãè¿ãã¾ãã [ãªãã©ã³ãã®å¯¾å¿ããããããç°ãªãåãããã«ã¤ã㦠1 ãè¿ãã¾ãã] |
| ãããå¦å® (NOT) | ~ a |
ãªãã©ã³ãã®åããããå転ãã¾ãã |
| å·¦ã·ãã | a << b |
2 é²è¡¨ç¾ã® a ã b ãããåã ãå·¦ã«ã·ãããã¾ããå³ãã 0 ã§è©°ãã¾ãã |
| 符å·ç¶æå³ã·ãã | a >> b |
2 é²è¡¨ç¾ã® a ã b ãããåã ãå³ã«ã·ãããã¾ããæº¢ãããããã¯ç ´æ£ãã¾ãã |
| ã¼ãåãå³ã·ãã | a >>> b |
2 é²è¡¨ç¾ã® a ã b ãããåã ãå³ã«ã·ãããã¾ããæº¢ãããããã¯ç ´æ£ããå·¦ãã 0 ã§è©°ãã¾ãã |
ãããè«çæ¼ç®å
æ¦å¿µä¸ããããè«çæ¼ç®åã¯ä»¥ä¸ã®ããã«æ©è½ãã¾ãã
-
ãªãã©ã³ãã®å¤ã¯ 32 ãããã®æ´æ°ã«å¤æããã0 ããã㯠1 ãããªããããåã¨ãã¦è¡¨ç¾ããã¾ãã 32 ããããè¶ ããæ°å¤ã¯ã32 ããããè¶ ããé¨åãæ¨ã¦ããã¾ãã æ¬¡ã®ä¾ã§ã¯ã32 ããããè¶ ããæ´æ°ãã32 ãããã®æ´æ°ã«å¤æããã¦ãã¾ãã
夿å: 1110 0110 1111 1010 0000 0000 0000 0110 0000 0000 0001 夿å¾: 1010 0000 0000 0000 0110 0000 0000 0001
-
第 1 ãªãã©ã³ãã®åãããã¯ç¬¬ 2 ãªãã©ã³ãã®å¯¾å¿ããåãããã¨å¯¾ã«ãªãã¾ãã第 1 ãããã¨ç¬¬ 1 ãããã第 2 ãããã¨ç¬¬ 2 ãããã以ä¸åæ§ã§ãã
-
æ¼ç®åã¯åãããã®ãã¢ã«é©ç¨ãããçµæã¯ããããã¨ã«æ§æããã¾ãã
ä¾ãã° 9 ã® 2 é²è¡¨ç¾ã¯ 1001 ã§ã15 ã® 2 é²è¡¨ç¾ã¯ 1111 ã§ãã ãããã£ã¦ããããæ¼ç®åããããã®å¤ã«é©ç¨ãããã¨ãã®çµæã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
| å¼ | çµæ | 2 鲿°ã§ã®èª¬æ |
|---|---|---|
15 & 9 |
9 |
1111 & 1001 = 1001 |
15 | 9 |
15 |
1111 | 1001 = 1111 |
15 ^ 9 |
6 |
1111 ^ 1001 = 0110 |
~15 |
-16 |
~ 0000 0000 ⦠0000 1111 = 1111 1111 ⦠1111 0000 |
~9 |
-10 |
~ 0000 0000 ⦠0000 1001 = 1111 1111 ⦠1111 0110 |
ãªãããããå¦å®æ¼ç®åã使ã㨠32 ããããã¹ã¦ãå転ãããã®å¤ã®æä¸ä½ï¼æãå·¦ï¼ã®ãããã¯ï¼2 ã®è£æ°è¡¨ç¾ã§ï¼è² ã®æ°ã表ã 1 ã«è¨å®ããããã¨ã«æ³¨æãã¦ãã ããã ~x 㯠-x - 1 ã¨åãå¤ã«è©ä¾¡ããã¾ãã
ãããã·ããæ¼ç®å
ãããã·ããæ¼ç®å㯠2 ã¤ã®ãªãã©ã³ããã¨ãã¾ãã第 1 ãªãã©ã³ãã¯ã·ãããããæ°ãæå®ãã第 2 ãªãã©ã³ãã¯ã第 1 ãªãã©ã³ããã·ããããããããæ°ãæå®ãã¾ãã ã·ããæ¼ç®ã®æ¹åã¯ä½¿ç¨ããæ¼ç®åã«ãã£ã¦æ±ºã¾ãã¾ãã
ã·ããæ¼ç®åã¯ãã®ãªãã©ã³ãã 32 ãããæ´æ°ã«å¤æããçµæãæ°å¤åã¾ãã¯é·æ´æ°åã®ã©ã¡ããã§è¿ãã¾ããç¹ã«ãå·¦ã®ãªãã©ã³ãã®åãé·æ´æ°åã§ãã£ãå ´åãé·æ´æ°åãè¿ãã¾ãããã以å¤ã®å ´åã¯æ°å¤åãè¿ãã¾ãã
ã·ããæ¼ç®åã®ç¨®é¡ã¯æ¬¡è¡¨ã®ã¨ããã§ãã
| æ¼ç®å | 説æ | ä¾ |
|---|---|---|
|
å·¦ã·ãã ( <<)
|
ãã®æ¼ç®åã¯ã第 1 ãªãã©ã³ããæå®ãããããæ°åã ãå·¦ã«ã·ãããã¾ããå·¦ã«æº¢ãããããã¯ç ´æ£ããã¾ãã0 ã®ããããå³ããè©°ãã¾ãã |
9<<2 ã®çµæã¯ 36 ã«ãªãã¾ãã1001 ã 2 ãããå·¦ã«ã·ãããã㨠100100 ã«ãªãããã㯠36 ã¨ãªãããã§ãã
|
符å·ç¶æå³ã·ãã (>>)
|
ãã®æ¼ç®åã¯ã第 1 ãªãã©ã³ããæå®ãããããæ°åã ãå³ã«ã·ãããã¾ããå³ã«ããµãããããã¯ç ´æ£ããã¾ãã左端ã®ãããã®ã³ãã¼ãå·¦ããå ¥ãã¾ãã |
9>>2 ã®çµæã¯ 2 ã«ãªãã¾ãã1001 ã 2 ãããå³ã«ã·ãããã㨠10 ã§ããããã㯠2 ã¨ãªãããã§ããåæ§ã«ã -9>>2 ã¯ç¬¦å·ãç¶æããããã -3 ã«ãªãã¾ãã
|
ã¼ãåãå³ã·ãã (>>>)
|
ãã®æ¼ç®åã¯ã第 1 ãªãã©ã³ããæå®ãããããæ°åã ãå³ã«ã·ãããã¾ããå³ã«æº¢ãããããã¯ç ´æ£ããã¾ãã0 ã®ããããå·¦ããè©°ãã¾ãã |
19>>>2 ã®çµæã¯ 4 ã«ãªãã¾ãã10011 ã 2 ãããå³ã«ã·ãããã㨠100 ã«ãªãããã㯠4 ã¨ãªãããã§ããéè² æ°ã§ã¯ã0 åãå³ã·ããã¨ç¬¦å·ãç¶æããå³ã·ããã¯åãçµæã«ãªãã¾ãã
|
è«çæ¼ç®å
è«çæ¼ç®åã§ã¯ãåºæ¬çã«è«çå¤ï¼ãã¼ã«å¤ï¼ãç¨ãã¾ãããã®å ´åã¯è«çå¤ãè¿ãã¾ãã
ãããã &&ã||ã?? ã®åæ¼ç®åã«ã¤ãã¦ã¯ãå®éã«ã¯æå®ããããªãã©ã³ãã®ä¸æ¹ã®å¤ãè¿ãã¾ãããã®ããããããã®æ¼ç®åã§è«çå¤ä»¥å¤ã使ç¨ãããå ´åãè«çå¤ä»¥å¤ãè¿ããã¨ãããã¾ãããã®ããããããã¯ãå¤é¸ææ¼ç®åãã¨èªãã æ¹ãããé©åã§ãã
è«çæ¼ç®åã¯æ¬¡ã®è¡¨ã§èª¬æãã¾ãã
| æ¼ç®å | ä½¿ç¨æ³ | 説æ |
|---|---|---|
è«çç© (AND) (&&)
|
expr1 && expr2 |
expr1 ã false ã«å¤æã§ããå ´åã¯ããããè¿ãã¾ãã
ããã§ãªããã°ã expr2 ãè¿ãã¾ããå¾ã£ã¦ãè«çå¤ãç¨ããå ´åã両ãªãã©ã³ããçã§ããã° && 㯠true ãè¿ãã¾ãããã以å¤ã®å ´å㯠false ãè¿ãã¾ãã
|
è«çå (OR) (||)
|
expr1 || expr2 |
expr1 ã true ã«å¤æã§ããå ´åã¯ããããè¿ãã¾ãã
ããã§ãªããã°ã expr2 ãè¿ãã¾ããå¾ã£ã¦ãè«çå¤ãç¨ããå ´åãã©ã¡ããã®ãªãã©ã³ããçã§ããã° || 㯠true ãè¿ãã¾ãããã以å¤ã®å ´å㯠false ãè¿ãã¾ãã
|
ãã«å¤å使¼ç®å (??)
|
expr1 ?? expr2 |
expr1 ã null ã§ã undefined ã§ããªãå ´åã¯ãããè¿ãã¾ããããã§ãªãå ´å㯠expr2 ãè¿ãã¾ãã
|
è«çå¦å® (NOT) (!)
|
!expr |
åä¸ã®ãªãã©ã³ãã true ã«å¤æã§ããå ´å㯠false ãè¿ãã¾ããããã§ãªãå ´å㯠true ãè¿ãã¾ãã
|
false ã«å¤æããã表ç¾ã®ä¾ã¨ãã¦ã¯ãnullã0ã0nãNaNã空æåå ("")ãundefined ã«è©ä¾¡ããããã®ãæãããã¾ãã
以ä¸ã®ã³ã¼ãã§ã¯ã && ï¼è«çç©ï¼æ¼ç®åã®ä¾ã示ãã¾ãã
const a1 = true && true; // t && t 㯠true ãè¿ã
const a2 = true && false; // t && f 㯠false ãè¿ã
const a3 = false && true; // f && t 㯠false ãè¿ã
const a4 = false && 3 === 4; // f && f 㯠false ãè¿ã
const a5 = "Cat" && "Dog"; // t && t 㯠Dog ãè¿ã
const a6 = false && "Cat"; // f && t 㯠false ãè¿ã
const a7 = "Cat" && false; // t && f 㯠false ãè¿ã
以ä¸ã®ã³ã¼ãã§ã¯ã || ï¼è«çåï¼æ¼ç®åã®ä¾ã示ãã¾ãã
const o1 = true || true; // t || t 㯠true ãè¿ã
const o2 = false || true; // f || t 㯠true ãè¿ã
const o3 = true || false; // t || f 㯠true ãè¿ã
const o4 = false || 3 === 4; // f || f 㯠false ãè¿ã
const o5 = "Cat" || "Dog"; // t || t 㯠Cat ãè¿ã
const o6 = false || "Cat"; // f || t 㯠Cat ãè¿ã
const o7 = "Cat" || false; // t || f 㯠Cat ãè¿ã
以ä¸ã®ã³ã¼ãã§ã¯ã ?? ï¼ãã«å¤åä½ï¼æ¼ç®åã®ä¾ã示ãã¾ãã
const n1 = null ?? 1; // 1
const n2 = undefined ?? 2; // 2
const n3 = false ?? 3; // false
const n4 = 0 ?? 4; // 0
?? 㯠|| ã¨ä¼¼ãåä½ããã¾ãããæåã®å¼ã "ãã«å¤"ãã¤ã¾ã null ã¾ã㯠undefined ã®å ´åã«ã 2 çªç®ã®å¼ã®ã¿ãè¿ããã¨ã«æ³¨æãã¦ãã ããã null ã¾ã㯠undefined ã¨ãªãå¯è½æ§ãããå¤ã®æ¢å®å¤ãè¨å®ããã«ã¯ã || ããã ?? ã®æ¹ãé©ãã¦ãã¾ããç¹ã«ã '' ã 0 ã®ãããªå¤ãæå¹ãªå¤ã§ãããæ¢å®å¤ãé©ç¨ããªãå ´åã§ãã
以ä¸ã®ã³ã¼ãã§ã¯ã ! ï¼è«çå¦å®ï¼æ¼ç®åã®ä¾ã示ãã¾ãã
const n1 = !true; // !t 㯠false ãè¿ã
const n2 = !false; // !f 㯠true ãè¿ã
const n3 = !"Cat"; // !t 㯠false ãè¿ã
ç絡è©ä¾¡
è¤æ°ã®è«çå¼ãå·¦ããå³ã¸è©ä¾¡ãããéã«ã以ä¸ã®è¦åã§ãç絡ã (short-circuit) è©ä¾¡ãã§ãããã©ããã確èªããã¾ãã
å½å¤ && ä½ãã¯å½å¤ã¸ã¨ç絡è©ä¾¡ããã¾ããçå¤ || ä½ãã¯çå¤ã¸ã¨ç絡è©ä¾¡ããã¾ããéãã«å¤ ?? ä½ãã¯éãã«å¤ã¸ã¨ç絡è©ä¾¡ããã¾ãã
è«ççãªã«ã¼ã«ã«ããããããã®è©ä¾¡ãå¸¸ã«æ£ç¢ºã§ãããã¨ãä¿è¨¼ããã¾ããä¸è¨ã®å¼ã§ä½ãã®é¨åã¯è©ä¾¡ãããªããããã©ã®ããã«ãã¦ãå¯ä½ç¨ãçããªããã¨ã«æ³¨æãã¦ãã ããã
é·æ´æ°åã®æ¼ç®å
æ°å¤å士ã®éã§ä½¿ç¨ã§ããã»ã¨ãã©ã®æ¼ç®åã¯ãé·æ´æ°åã®å¤ã®éã§ãåæ§ã«ä½¿ç¨ãããã¨ãã§ãã¾ãã
// é·æ´æ°åã®å ç®
const a = 1n + 2n; // 3n
// é·æ´æ°åã®é¤ç®ã¯ 0 ã«ä¸¸ãããã¾ãã
const b = 1n / 2n; // 0n
// é·æ´æ°åã®ãããæ¼ç®åã¯ä¸¡å´ãåãæ¨ã¦ã¾ãã
const c = 40000000000000000n >> 2n; // 10000000000000000n
ä¸ã¤ã®ä¾å¤ã¯ç¬¦å·ãªãå³ã·ãã (>>>)ã§ãããé·æ´æ°å¤ã§ã¯å®ç¾©ããã¦ãã¾ãããããã¯ãé·æ´æ°åã¯åºå®ãããå¹
ãæããªããããæè¡çã«ãæä¸ä½ãããããæããªãããã§ãã
const d = 8n >>> 2n; // TypeError: BigInts have no unsigned right shift, use >> instead
é·æ´æ°åã¨æ°å¤åã¯äºãã«ç½®ãæãä¸å¯è½ã§ããè¨ç®ã§æ··å¨ããããã¨ã¯ã§ãã¾ããã
const a = 1n + 2; // TypeError: Cannot mix BigInt and other types
ããã¯ãé·æ´æ°åãæ°å¤åã®ãµãã»ããã§ãã¹ã¼ãã¼ã»ããã§ããªãããã§ããé·æ´æ°åã¯å¤§ããªæ´æ°ã表ããã¨ãã«ã¯ãæ°å¤ãããé«ã精度ãæã¡ã¾ãããå°æ°ã表ãããã¨ã¯ã§ããªãã®ã§ãã©ã¡ãã䏿¹ã«æé»ã®ãã¡ã«å¤æããã¨ç²¾åº¦ãè½ã¡ããã¨ãããã¾ããæ¼ç®ãæ°å¤æ¼ç®ã«ãããã®ããé·æ´æ°æ¼ç®ã«ãããã®ããæç¤ºçãªå¤æã使ç¨ãã¦ãã ããã
const a = Number(1n) + 2; // 3
const b = 1n + BigInt(2); // 3n
é·æ´æ°ã¨æ°å¤ãæ¯è¼ãããã¨ã¯ã§ãã¾ãã
const a = 1n > 2; // false
const b = 3 > 2n; // true
æååæ¼ç®å
æååã«å¯¾ãã¦ä½¿ç¨ãããã¨ãã§ããæ¼ç®åã«ã¯ãæ¯è¼æ¼ç®åã«å ãã¦ã2 ã¤ã®æååãçµåããçµåæ¼ç®å (+) ãããã2 ã¤ã®ãªãã©ã³ãã®æååãçµåããæååãè¿ãã¾ãã
ä¾ãã°ã
console.log("my " + "string"); // æåå "my string" ããã°ã«è¡¨ç¤ºãããã
ç縮表è¨ãã代å
¥æ¼ç®å += ãæååã®çµåã«ä½¿ç¨ã§ãã¾ãã
ä¾ãã°ã
let myString = "alpha";
myString += "bet"; // "alphabet" ã¨è©ä¾¡ããã¦ãmyString ã«ãã®å¤ã代å
¥ãã¾ãã
æ¡ä»¶ï¼ä¸é ï¼æ¼ç®å
æ¡ä»¶æ¼ç®å㯠JavaScript ã§å¯ä¸ 3 ã¤ã®ãªãã©ã³ããåãæ¼ç®åã§ããæ¡ä»¶ã«åºã¥ã㦠2 ã¤ã®å¤ã®ãã¡ã® 1 ã¤ã鏿ãã¾ããæ§æã¯ä»¥ä¸ã®éãã§ãã
condition ? val1 : val2
condition ãçã®å ´åãæ¼ç®å㯠val1 ã®å¤ã鏿ãã¾ããããã§ãªãå ´åãval2 ã®å¤ã鏿ãã¾ããæ¨æºçãªæ¼ç®åã使ç¨ã§ããå ´æãªãã©ãã§ãæ¡ä»¶æ¼ç®åã使ç¨ã§ãã¾ãã
ä¾ãã°ã
const status = age >= 18 ? "adult" : "minor";
ãã®æã§ã¯ãage ã 18 以ä¸ã®å ´åã夿° status ã« "adult" ã®å¤ã代å
¥ããã¾ããããã§ãªãå ´å status ã«ã¯ "minor" ã代å
¥ããã¾ãã
ã«ã³ãæ¼ç®å
ã«ã³ãæ¼ç®å (,) ã¯ããªãã©ã³ãã®ä¸¡æ¹ãè©ä¾¡ããæå¾ã®ãªãã©ã³ãã®å¤ãè¿ãã¾ãããã®æ¼ç®åã¯ã主㫠for ã«ã¼ãã®ä¸ã§ãç¹°ãè¿ãã®ãã³ã«è¤æ°ã®å¤æ°ãæ´æ°ããããã«ä½¿ç¨ããã¾ãã
å¿
è¦ã§ãªãã®ã«ä»ã®å ´æã§ä½¿ç¨ããã®ã¯ãæªãã¹ã¿ã¤ã«ã¨è¦ãªããã¾ãã
å¤ãã®å ´åãç¬ç«ãã 2 ã¤ã®æã代ããã«ä½¿ç¨ãããã¨ãã§ããã¾ã使ç¨ãã¹ãã§ãã
ä¾ãã°ãä¸è¾ºã 10 è¦ç´ ã® 2 次å
é
å a ããã£ãã¨ãã¦ã以ä¸ã®ã³ã¼ãã§ã«ã³ãæ¼ç®åãç¨ã㦠2 ã¤ã®å¤æ°ãåæã«æ´æ°ãã¦ãã¾ãããã®ã³ã¼ãã§ã¯é
åã®å¯¾è§æåã®å¤ãåºåãã¾ãã
const x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const a = [x, x, x, x, x];
for (let i = 0, j = 9; i <= j; i++, j--) {
// ^
console.log(`a[${i}][${j}]= ${a[i][j]}`);
}
åé æ¼ç®å
åé æ¼ç®ã¯ãªãã©ã³ãã 1 ã¤ã ãåãæ¼ç®ã§ãã
delete
delete æ¼ç®åã¯ãªãã¸ã§ã¯ãããªãã¸ã§ã¯ãã®ããããã£ãé
åã®æå®ãããã¤ã³ããã¯ã¹ã®è¦ç´ ãåé¤ãã¾ãã
æ§æã¯ä»¥ä¸ã®ã¨ããã§ãã
delete object.property;
delete object[propertyKey];
delete objectName[index];
ããã§ object ã¯ãªãã¸ã§ã¯ãã®ååããproperty ã¯æ¢åã®ããããã£ããpropertyKey ã¯é
åã®è¦ç´ ã®ä½ç½®ãç¤ºãæ´æ°ããããã表ãã¦ãã¾ãã
delete æ¼ç®åãæåããã¨ããªãã¸ã§ã¯ããããã®ããããã£ãåé¤ããã¾ãããã®å¾ããã®ããããã£ã«ã¢ã¯ã»ã¹ãããã¨ãã¦ããçµæã¯ undefined ã«ãªãã¾ãã
delete æ¼ç®åã¯ãæä½ãå¯è½ãªå ´å㯠true ãè¿ããæä½ãä¸å¯è½ãªå ´å㯠false ãè¿ãã¾ãã
delete Math.PI; // false ãè¿ãï¼æ§æä¸å¯ã®ããããã£ã¯åé¤ã§ããªãï¼
const myObj = { h: 4 };
delete myObj.h; // true ãè¿ãï¼ã¦ã¼ã¶ã¼å®ç¾©ã®ããããã£ã¯åé¤ã§ããï¼
é åè¦ç´ ã®åé¤
é
åã¯åãªããªãã¸ã§ã¯ãã§ãããããæè¡çã«ã¯åè¦ç´ ã delete ãããã¨ãå¯è½ã§ãã
ãããããã¯æªããæ
£ä¾ã¨ã¿ãªããã¦ããã使ç¨ããªãã§ãã ããã
é
åã®è¦ç´ ãåé¤ãã¦ããé
åã® length ã¯å½±é¿ãåãããä»ã®è¦ç´ ã®æ·»åãä»ããªãããã¾ããã
ãã®ãããªãã¨ãããã®ã§ããã°ãåã«è¦ç´ ã undefined ã§ä¸æ¸ãããã»ããã¯ããã«è¯ãæ¹æ³ã§ãã
å®éã«é
åãæä½ããããã«ã¯ã splice ã®ãããªãã¾ãã¾ãªé
åã®ã¡ã½ããã使ç¨ãã¦ãã ããã
typeof
typeof æ¼ç®åã¯ãæªè©ä¾¡ã®ãªãã©ã³ãã®åãæãæååãè¿ãã¾ãã
ãªãã©ã³ãã«ã¯è¿ãããåã調ã¹ã対象ã¨ãªãæååããã¼ã¯ã¼ãããªãã¸ã§ã¯ããæå®ãã¾ãã
æ¬å¼§ã¯ãã£ã¦ããªãã¦ããã¾ãã¾ããã
以ä¸ã®å¤æ°ãå®ç¾©ããã¨ãã¾ãããã
const myFun = () => 5 + 2;
const shape = "round";
const size = 1;
const foo = ["Apple", "Mango", "Orange"];
const today = new Date();
typeof æ¼ç®åã¯ã夿°ã®åã«å¿ãã¦ä»¥ä¸ã®å¤ãè¿ãã¾ãã
typeof myFun; // "function" ãè¿ã
typeof shape; // "string" ãè¿ã
typeof size; // "number" ãè¿ã
typeof foo; // "object" ãè¿ã
typeof today; // "object" ãè¿ã
typeof doesntExist; // "undefined" ãè¿ã
true ã null ã¨ãããã¼ã¯ã¼ãã«å¯¾ãã¦ãtypeof æ¼ç®åã¯ä»¥ä¸ã®çµæãè¿ãã¾ãã
typeof true; // "boolean" ãè¿ã
typeof null; // "object" ãè¿ã
æ°å¤ãæååã«å¯¾ãã¦ã typeof æ¼ç®åã¯ä»¥ä¸ã®çµæãè¿ãã¾ãã
typeof 62; // "number" ãè¿ã
typeof "Hello world"; // "string" ãè¿ã
ããããã£å¤ã«å¯¾ãã¦ã typeof æ¼ç®åã¯ããããã£ãæã¤å¤ã®åãè¿ãã¾ãã
typeof document.lastModified; // "string" ãè¿ã
typeof window.length; // "number" ãè¿ã
typeof Math.LN2; // "number" ãè¿ã
ã¡ã½ããã颿°ã«å¯¾ãã¦ã typeof æ¼ç®åã¯ä»¥ä¸ã®çµæãè¿ãã¾ãã
typeof blur; // "function" ãè¿ã
typeof parseInt; // "function" ãè¿ã
typeof shape.split; // "function" ãè¿ã
å®ç¾©æ¸ã¿ãªãã¸ã§ã¯ãã«å¯¾ãã¦ã typeof æ¼ç®åã¯ä»¥ä¸ã®çµæãè¿ãã¾ãã
typeof Date; // "function" ãè¿ã
typeof Function; // "function" ãè¿ã
typeof Math; // "object" ãè¿ã
typeof Option; // "function" ãè¿ã
typeof String; // "function" ãè¿ã
void
void æ¼ç®åã¯ãå¤ãè¿ããã«è©ä¾¡ããå¼ãæå®ãã¾ããå¼ã¯è©ä¾¡ãã JavaScript ã®å¼ã¨ãªãã¾ããå¼ã®å¨ãã®æ¬å¼§ã¯ãã£ã¦ããªãã¦ããã¾ãã¾ãããã使ç¨ããæ¹ãè¦ãç®ãããã§ãã
é¢ä¿æ¼ç®å
é¢ä¿æ¼ç®åã¯ãªãã©ã³ããæ¯è¼ããæ¯è¼çµæãçãã©ããã«åºã¥ãã¦è«çå¤ãè¿ãã¾ãã
in
in æ¼ç®åã¯ãæå®ããããããã£ãæå®ã®ãªãã¸ã§ã¯ãã«ããå ´åã« true ãè¿ãã¾ããæ§æã¯ä»¥ä¸ã®ã¨ããã§ãã
ããããã£åã¾ãã¯æ°å¤ in ãªãã¸ã§ã¯ãå
ããã§ ããããã£åã¾ãã¯æ°å¤ ã¯æååãæ°å¤ãã·ã³ãã«ã®ä½ããã§ãããããã£åã¾ãã¯é
åã®æ·»åã表ãã¾ãããªãã¸ã§ã¯ãåã¯ãªãã¸ã§ã¯ãã®ååããããã表ãã¾ãã
次ã®ä¾ã§ in æ¼ç®åã®ä½¿ç¨æ³ã示ãã¾ãã
// é
å
const trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees; // true ãè¿ã
3 in trees; // true ãè¿ã
6 in trees; // false ãè¿ã
"bay" in trees; // false ãè¿ã
// ï¼ã¤ã³ããã¯ã¹ã®æãå¤ã§ã¯ãªããã¤ã³ããã¯ã¹ã®æ°åãæå®ããªããã°ãªããªãï¼
"length" in trees; // true ãè¿ãï¼length 㯠Array ã®ããããã£ï¼
// å®ç¾©æ¸ã¿ãªãã¸ã§ã¯ã
"PI" in Math; // true ãè¿ã
const myString = new String("coral");
"length" in myString; // true ãè¿ã
// ã¦ã¼ã¶ã¼å®ç¾©ãªãã¸ã§ã¯ã
const myCar = { make: "Honda", model: "Accord", year: 1998 };
"make" in myCar; // true ãè¿ã
"model" in myCar; // true ãè¿ã
instanceof
instanceof æ¼ç®åã¯ãæå®ããããªãã¸ã§ã¯ããæå®ããããªãã¸ã§ã¯ãã®ç¨®é¡ã§ããå ´åã« true ãè¿ãã¾ããæ§æã¯ä»¥ä¸ã®ã¨ããã§ãã
ãªãã¸ã§ã¯ã instanceof ãªãã¸ã§ã¯ãå
ããã§ãªãã¸ã§ã¯ãã¯ãªãã¸ã§ã¯ãåã¨æ¯è¼ãããªãã¸ã§ã¯ãã§ããããªãã¸ã§ã¯ãåã¯åã表ãã³ã³ã¹ãã©ã¯ã¿ã¼ãä¾ãã° Map ã Array ã§ãã
å®è¡æã«ãªãã¸ã§ã¯ãã®åã確èªããå¿
è¦ãããã¨ã㯠instanceof ã使ç¨ãã¦ãã ããã
ä¾ãã°ä¾å¤ãåãåãã¨ããçºçããä¾å¤ã®åã«å¿ãã¦ãå¥ã
ã®ä¾å¤ãæ±ãã³ã¼ãã«åå²ãããã¨ãã§ãã¾ãã
ä¾ãã°æ¬¡ã®ã³ã¼ãã§ã¯ã instanceof ã使ç¨ã㦠obj ã Map ãªãã¸ã§ã¯ãã§ãããã夿ãã¦ãã¾ãã obj 㯠Map ãªãã¸ã§ã¯ãã§ãããããif æä¸ã®æãå®è¡ããã¾ãã
const obj = new Map();
if (obj instanceof Map) {
// å®è¡ããæ
}
åºæ¬çãªå¼
ãã¹ã¦ã®æ¼ç®åã¯ãæçµçã« 1 ã¤ä»¥ä¸ã®åºæ¬çãªå¼ãæ¼ç®ãã¾ãããããã®åºæ¬çãªå¼ã«ã¯èå¥åã¨ãªãã©ã«ãå«ã¾ãã¾ãããä»ã«ãããã¤ãã®ç¨®é¡ãããã¾ãã以ä¸ã§ããããç°¡åã«ç´¹ä»ãããããã®æå³ã¥ãã¯ããããã®åç §ããç« ã§è©³ç´°ã«è¨è¿°ããã¦ãã¾ãã
this
this ãã¼ã¯ã¼ã ã¯é常ã颿°å
ã§ä½¿ç¨ããã¾ããä¸è¬çã«ã颿°ããªãã¸ã§ã¯ãã®ã¡ã½ããã¨ãã¦ç´ä»ãããã¦ããå ´åãthis ã¯ãã®ã¡ã½ãããå¼ã³åºããããªãã¸ã§ã¯ããæãã¾ããããã¯ã颿°ã«æ¸¡ãããé ãã弿°ã¨åæ§ã«æ©è½ãã¾ããthis ã¯ãªãã¸ã§ã¯ãã¨ãã¦è©ä¾¡ãããå¼ã§ãããããããã¾ã§ã«ç´¹ä»ãããã¹ã¦ã®ãªãã¸ã§ã¯ãæä½ã使ç¨ãããã¨ãã§ãã¾ãã
this["propertyName"];
this.propertyName;
doSomething(this);
ä¾ãã°ã颿°ã次ã®ããã«å®ç¾©ããã¦ããã¨ãã¾ãã
function getFullName() {
return `${this.firstName} ${this.lastName}`;
}
ãã®é¢æ°ããªãã¸ã§ã¯ãã«æ·»ä»ã§ããå¼ã³åºãããéã«ã¯ãã®ãªãã¸ã§ã¯ãã®ããããã£ã使ç¨ããã¾ãã
const person1 = {
firstName: "Chris",
lastName: "Martin",
};
const person2 = {
firstName: "Chester",
lastName: "Bennington",
};
// åã颿°ãè¨å®
person1.getFullName = getFullName;
person2.getFullName = getFullName;
console.log(person1.getFullName()); // "Chris Martin"
console.log(person2.getFullName()); // "Chester Bennington"
ã°ã«ã¼ãåæ¼ç®å
ã°ã«ã¼ãåæ¼ç®å ( ) ã¯å¼å
ã§ã®è©ä¾¡ã®åªå
é ä½ãå¶å¾¡ãã¾ããä¾ãã°ãå ç®ãæåã«è©ä¾¡ããããããæåã«è¡ãããæ¼ç®ãä¹ç®ã¨é¤ç®ããå ç®ã¨æ¸ç®ã¸ã¨ä¸æ¸ããããã¨ãã§ãã¾ãã
const a = 1;
const b = 2;
const c = 3;
// æ¢å®ã®åªå
é ä½
a + b * c; // 7
// æ¢å®ã§ã¯ãã®ããã«è©ä¾¡ããã
a + (b * c); // 7
// åªå
é ä½ã䏿¸ããã
// ä¹ç®ã®åã«å ç®ãè¡ã
(a + b) * c; // 9
// ãã®å¼ã¨åçã¨ãªã
a * c + b * c; // 9
ããããã£ã¢ã¯ã»ãµã¼
ããããã£ã¢ã¯ã»ãµã¼æ§æã¯ããããè¨æ³ã¾ãã¯ãã©ã±ããè¨æ³ãããããã使ç¨ãã¦ããªãã¸ã§ã¯ãä¸ã®ããããã£å¤ãåå¾ãã¾ãã
object.property;
object["property"];
ãªãã¸ã§ã¯ãã§ã®ä½æ¥ã¬ã¤ãã§ã¯ããªãã¸ã§ã¯ãããããã£ã«ã¤ãã¦ãã£ã¨è©³ç´°ã示ãã¦ãã¾ãã
ãªãã·ã§ãã«ãã§ã¼ã³
ãªãã·ã§ãã«ãã§ã¼ã³æ§æ (?.) ã¯ããªãã¸ã§ã¯ããå®ç¾©ããã null ã§ãªãå ´åã«ãªãã¸ã§ã¯ãã«å¯¾ãã¦ãã§ã¼ã³æä½ãå®è¡ãããã以å¤ã®å ´åã«ã¯æä½ãç絡ã㦠undefined ãè¿ãã¾ãã
ããã«ãããnull ã¾ã㯠undefined ã®å¯è½æ§ãããå¤ã«å¯¾ãã¦æä½ãè¡ãéã« TypeError ãçºçããããã¨ãªãæä½ãè¡ããã¨ãã§ãã¾ãã
maybeObject?.property;
maybeObject?.[property];
maybeFunction?.();
new
new æ¼ç®åã使ç¨ããã¨ãããããã®ã¦ã¼ã¶ã¼å®ç¾©ãªãã¸ã§ã¯ãåãçµã¿è¾¼ã¿ãªãã¸ã§ã¯ãåã®ã¤ã³ã¹ã¿ã³ã¹ãçæãããã¨ãã§ãã¾ãã new ã®ä½¿ç¨æ³ã¯ä»¥ä¸ã®ã¨ããã§ãã
const ãªãã¸ã§ã¯ãå = new ãªãã¸ã§ã¯ãå(弿°1, 弿°2, /* â¦, */ 弿°N);
super
super ãã¼ã¯ã¼ãã¯èªåã®è¦ªã®ãªãã¸ã§ã¯ãã«é¢æ°ãå¼ã³åºãã®ã«ä½¿ãã¾ãã
ããã¯ä¸ã®ä¾ã®ããã«ãã¯ã©ã¹ã¨å
±ã«ä½¿ã£ã¦è¦ªã®ã³ã³ã¹ãã©ã¯ã¿ã¼ãå¼ã³åºãã®ã«ä¾¿å©ã§ãã
super(弿°); // 親ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ãå¼ã³åºãã
super.親ã®é¢æ°(弿°);