ä»£å ¥æ¼ç®å (=)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
代å
¥ (=) æ¼ç®åã¯ã夿°ã¾ãã¯ããããã£ã«å¤ã代å
¥ããããã«ä½¿ç¨ããã¾ãã代å
¥å¼èªä½ã®å¤ã¯ã代å
¥ãããå¤ã«ãªãã¾ããããã«ãããè¤æ°ã®å¤æ°ã« 1 ã¤ã®å¤ã代å
¥ããããã«ãè¤æ°ã®ä»£å
¥ãé£éããããã¨ãã§ãã¾ãã
試ãã¦ã¿ã¾ããã
let x = 2;
const y = 3;
console.log(x);
// äºæ³ãããçµæ: 2
console.log((x = y + 1)); // 3 + 1
// äºæ³ãããçµæ: 4
console.log((x = x * y)); // 4 * 3
// äºæ³ãããçµæ: 12
æ§æ
x = y
弿°
x-
æå¹ãªä»£å ¥å¯¾è±¡ã§ãããèå¥åã¾ãã¯ããããã£ã¢ã¯ã»ãµã¼ãªã©ã§ããæ§é åè§£ãã¿ã¼ã³ã使ç¨ã§ãã¾ãã
y-
xã«ä»£å ¥ããå¤ãæå®ããå¼ã§ãã
è¿å¤
y ã®å¤ã§ãã
ä¾å¤
ReferenceError-
峿 ¼ã¢ã¼ãã§ãã¹ã³ã¼ãå ã§å®£è¨ããã¦ããªãèå¥åã«ä»£å ¥ããå ´åã«çºçãã¾ãã
TypeError-
峿 ¼ã¢ã¼ãã§ã夿´ä¸å¯è½ãªããããã£ã«ä»£å ¥ããå ´åã«çºçãã¾ãã
解説
代å
¥æ¼ç®åã¯ã以ä¸ã®ãããªä»ã®å ´æã§ãæ§æã®åºåãæåã¨ãã¦ä½¿ç¨ãããçå· (=) ã¨ã¯å®å
¨ã«ç°ãªãã¾ãã
varãletãconst宣è¨ã®åæåå- æ§é åè§£ã®æ¢å®å¤
- ããã©ã«ã弿°
- ã¯ã©ã¹ãã£ã¼ã«ãã®åæåå
ãããã®å ´æã¯ãã¹ã¦ã= ã®å³å´ã«ä»£å
¥å¼ãåãå
¥ãã¾ãããããã£ã¦ãè¤æ°ã®çå·ãé£ãªã£ã¦ããå ´åã¯ã次ã®ããã«æå®ãã¾ãã
const x = y = 5;
ããã¯æ¬¡ã®ãã®ã¨åçã§ãã
const x = (y = 5);
ããã¯ã y ã¯æ¢åã®å¤æ°ã§ããå¿
è¦ãããã x ã¯æ°ãã宣è¨ããã const 夿°ã§ãããã¨ãæå³ãã¦ãã¾ãã y ã«ã¯å¤ 5 ã代å
¥ããã x 㯠y = 5 ã®å¼ï¼ãã®å¤ã 5ï¼ã®å¤ã§åæåããã¾ãã y ãæ¢åã®å¤æ°ã§ãªãå ´åã峿 ¼ã¢ã¼ãã§ãªãå ´åã¯ã°ãã¼ãã«å¤æ° y ãæé»çã«ä½æããã¾ãã峿 ¼ã¢ã¼ãã§ã¯ã ReferenceError ãçºçãã¾ããåã宣è¨å
ã§ 2 ã¤ã®å¤æ°ã宣è¨ããã«ã¯ã次ã®ããã«ãã¾ãã
const x = 5,
y = 5;
ä¾
>åºæ¬çãªä»£å ¥ã¨é£é
let x = 5;
let y = 10;
let z = 25;
x = y; // x is 10
x = y = z; // x, y and z are all 25
ä»£å ¥å¼ã®å¤
ä»£å ¥å¼èªä½ã¯å³è¾ºå¤ã¨ãã¦è©ä¾¡ããããããå¤ã®ãã°åºåã¨å¤æ°ã¸ã®ä»£å ¥ãåæã«è¡ããã¨ãã§ãã¾ãã
let x;
console.log(x); // undefined
console.log(x = 2); // 2
console.log(x); // 2
修飾ããã¦ããªãèå¥åã¸ã®ä»£å ¥
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã¯ãã¹ã³ã¼ããã§ã¼ã³ã®æä¸ä½ã«ä½ç½®ãã¾ããååãå¤ã«è§£æ±ºãããã¨ããã¨ãã¹ã³ã¼ããã§ã¼ã³ãæ¤ç´¢ããã¾ããã¤ã¾ããã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ããããã£ã¯ãglobalThis.ãwindow.ãglobal. ã§ååã修飾ããªãã¦ãããã¹ã¦ã®ã¹ã³ã¼ãããç°¡åã«åç
§ã§ããã¨ãããã¨ã§ãã
ã°ãã¼ãã«ãªãã¸ã§ã¯ãã« String ãããã㣠(Object.hasOwn(globalThis, "String")) ããããããæ¬¡ã®ã³ã¼ãã使ç¨ãããã¨ãã§ãã¾ãã
function foo() {
String("s"); // `String` 颿°ã¯ã°ãã¼ãã«ã§å©ç¨å¯è½
}
ãããã£ã¦ãæçµçã«ã¯ã°ãã¼ãã«ãªãã¸ã§ã¯ããã修飾ããã¦ããªãèå¥åãæ¤ç´¢ããã¾ããglobalThis.String ã¨å
¥åããå¿
è¦ã¯ããã¾ããã修飾ããã¦ããªã String ã¨å
¥åããã ãã§æ¸ã¿ã¾ãããã®æ©è½ã®æ¦å¿µã®ä¸è²«æ§ãé«ããããã修飾ããã¦ããªãèå¥åã¸ã®ä»£å
¥ã¯ãã¹ã³ã¼ããã§ã¼ã³ã«åãååã®å¤æ°ã宣è¨ããã¦ããªãå ´åãã°ãã¼ãã«ãªãã¸ã§ã¯ãã«ãã®ååã®ããããã£ã使ãããã¨ãæ³å®ãã¾ãï¼globalThis. ã¯çç¥ããã¾ãï¼ã
foo = "f"; // 峿 ¼ã¢ã¼ãã§ãªãå ´åã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã« `foo` ã¨ããååä»ãã®ããããã£ã使ããã¨æ³å®ãã¾ãã
Object.hasOwn(globalThis, "foo"); // true
峿 ¼ã¢ã¼ãã§ã¯ã峿 ¼ã¢ã¼ãã§ä¿®é£¾ããã¦ããªãèå¥åã«ä»£å
¥ããã¨ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã«ããããã£ã誤ã£ã¦ä½æãããã®ãé¿ããããã ReferenceError ãçºçãã¾ãã
ãªããä¸è¨ã®ãã¨ã¯ããã誤解ããã¦ãããã¨ã¨ã¯éã«ãJavaScript ã«ã¯æé»ã®å¤æ°ãæªå®£è¨ã®å¤æ°ã¯ãªããã¨ãæå³ãã¾ãã JavaScript ã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã¨ã°ãã¼ãã«ã¹ã³ã¼ããçµ±åããããããã£ã®ä½ææã«ã°ãã¼ãã«ãªãã¸ã§ã¯ãã®ä¿®é£¾åãçç¥ã§ããããã«ãã¦ããã ãã§ãã
æ§é åè§£ãä¼´ãä»£å ¥
左辺ã¯ä»£å ¥ãã¿ã¼ã³ã«ãããã¨ãã§ãã¾ããããã«ãããè¤æ°ã®å¤æ°ã«ä¸åº¦ã«ä»£å ¥ãããã¨ãã§ãã¾ãã
const result = /(a+)(b+)(c+)/.exec("aaabcc");
let a = "",
b = "",
c = "";
[, a, b, c] = result;
console.log(a, b, c); // "aaa" "b" "cc"
詳ããã¯ãæ§é åè§£ãåç §ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-assignment-operators> |