Baseline Widely available
æ§é åè§£ï¼destructuringãæ§ï¼åå²ä»£å ¥ï¼æ§æã¯ãé åããå¤ãåãåºãã¦ããããã¯ãªãã¸ã§ã¯ãããããããã£ãåãåºãã¦å¥åã®å¤æ°ã«ä»£å ¥ãããã¨ãå¯è½ã«ãã JavaScript ã®æ§æã§ããããã¯ããã¼ã¿ãåãåãå ´æï¼ä»£å ¥ã®å·¦è¾ºããæ°ããèå¥åãã¤ã³ãã£ã³ã°ã使ããå ´æãªãã©ãã§ãï¼ã§ä½¿ç¨ã§ãã¾ãã
試ãã¦ã¿ã¾ãããlet a, b, rest;
[a, b] = [10, 20];
console.log(a);
// æå¾
ãããåºå: 10
console.log(b);
// æå¾
ãããåºå: 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest);
// æå¾
ãããåºå: Array [30, 40, 50]
æ§æ
const [a, b] = array;
const [a, , b] = array;
const [a = aDefault, b] = array;
const [a, b, ...rest] = array;
const [a, , b, ...rest] = array;
const [a, b, ...{ pop, push }] = array;
const [a, b, ...[c, d]] = array;
const { a, b } = obj;
const { a: a1, b: b1 } = obj;
const { a: a1 = aDefault, b = bDefault } = obj;
const { a, b, ...rest } = obj;
const { a: a1, b: b1, ...rest } = obj;
const { [key]: a } = obj;
let a, b, a1, b1, c, d, rest, pop, push;
[a, b] = array;
[a, , b] = array;
[a = aDefault, b] = array;
[a, b, ...rest] = array;
[a, , b, ...rest] = array;
[a, b, ...{ pop, push }] = array;
[a, b, ...[c, d]] = array;
({ a, b } = obj); // æ¬å¼§ãå¿
è¦
({ a: a1, b: b1 } = obj);
({ a: a1 = aDefault, b = bDefault } = obj);
({ a, b, ...rest } = obj);
({ a: a1, b: b1, ...rest } = obj);
解説
ãªãã¸ã§ã¯ããªãã©ã«ã¨é åãªãã©ã«ã¯ãããã¤ãã®ãã¼ã¿ãã¢ãããã¯ã«ã¾ã¨ããç°¡åãªæ¹æ³ãæä¾ãã¾ãã
æ§é åè§£ã¯ãåæ§ã®æ§æãä»£å ¥ã®å·¦è¾ºã§ä½¿ç¨ãã¾ããããã¯ãéåã®ããããã®è¦ç´ ãå¥åã®å¤æ°ã¨ãã¦å®£è¨ãããã¨ã«ãããé åã®å®£è¨ã¨éã®æä½ãè¡ãã¾ãã
const arr = [1, 2, 3];
const [a, b, c] = arr;
// a = 1, b = 2, c = 3
ãªãã¸ã§ã¯ãã®å ´åã¯ãä¸è¨ã® 2 çµã®è¨è¿°ãæ¯è¼ããããããã®çµã®ä¸ã§ã©ã®ããã«å¯¾å¿ãã¦ããã®ãã確èªãã¦ãã ããã
const obj = { a, b, c };
const { a, b, c } = obj;
// æ¬¡ã®æã¨åç
// const a = obj.a, b = obj.b, c = obj.c;
const obj = { prop1: x, prop2: y, prop3: z };
const { prop1: x, prop2: y, prop3: z } = obj;
// æ¬¡ã®æã¨åç
// const x = obj.prop1, y = obj.prop2, z = obj.prop3;
ãã®æ©è½ã¯ã Perl ã Python ãªã©ã®è¨èªã«åå¨ããæ©è½ã«ä¼¼ã¦ãã¾ãã
é åã¾ãã¯ãªãã¸ã§ã¯ãã®æ§é åè§£ã«é¢ããæ©è½ã«ã¤ãã¦ã¯ã以ä¸ã®åã ã®ä¾ãåç §ãã¦ãã ããã
ãã¤ã³ãã¨ä»£å ¥ãªãã¸ã§ã¯ãã¨é åã®æ§é åè§£ã«ã¯ã2 種é¡ã®æ§é åè§£ã®ãã¿ã¼ã³ãããã¾ãããã¤ã³ããã¿ã¼ã³ã¨ä»£å ¥ãã¿ã¼ã³ã§ãããæ§æãè¥å¹²ç°ãªãã¾ãã
ãã¤ã³ããã¿ã¼ã³ã§ã¯ã宣è¨ãã¼ã¯ã¼ãï¼var
ãlet
ãconst
ï¼ããå§ãã¾ããæ¬¡ã«ãåã
ã®ããããã£ã夿°ã«ãã¤ã³ãããããããã«æ§é åè§£ããå¿
è¦ãããã¾ãã
const obj = { a: 1, b: { c: 2 } };
const {
a,
b: { c: d },
} = obj;
// `a` 㨠`d` ã® 2 ã¤ã®å¤æ°ã¯ãã¤ã³ãããã¾ãã
ãã¹ã¦ã®å¤æ°ã§åã宣è¨ãå
±æããã®ã§ããã夿°ã ãå代å
¥å¯è½ã«ããä»ã¯èªã¿åãå°ç¨ã«ãããå ´åã¯ãlet
ã§ 1 åãconst
ã§ 1 åã® 2 åã®æ§é åè§£ãå¿
è¦ã«ãªãå ´åãããã¾ãã
const obj = { a: 1, b: { c: 2 } };
const { a } = obj; // a ã¯å®æ°
let {
b: { c: d },
} = obj; // d ã¯å代å
¥å¯è½
è¨èªã夿°ããã¤ã³ãããä»ã®å¤ãã®æ§æã§ããæ§é åè§£ã®ãã¤ã³ããã¿ã¼ã³ã使ç¨ã§ãã¾ããããã«ã¯æ¬¡ã®ãããªãã®ãããã¾ãã
for...in
ãfor...of
ãfor await...of
ã«ã¼ãã®ã«ã¼ã夿°catch
ã®ãã¤ã³ã夿°ä»£å
¥ãã¿ã¼ã³ã§ã¯ããã¿ã¼ã³ã¯ãã¼ã¯ã¼ãã§å§ã¾ãã¾ãããããããã®æ§é åè§£ãããããããã£ãã代å
¥å
ã«ä»£å
¥ããã¾ãããã®ä»£å
¥å
㯠var
ã let
ã§ããããã宣è¨ããã¦ããããä»ã®ãªãã¸ã§ã¯ãã®ããããã£ã§ããä¸è¬çã«ã¯ã代å
¥å¼ã®å·¦è¾ºã«ç¾ãããã¨ãã§ãããã®ãªãä½ã§ãæ§ãã¾ããã
const numbers = [];
const obj = { a: 1, b: 2 };
({ a: numbers[0], b: numbers[1] } = obj);
// `a` ããã³ `b` ããããã£ã `numbers` ã¸ä»£å
¥ããã
ã¡ã¢: 宣è¨ãªãã§ãªãã¸ã§ã¯ããªãã©ã«ã®æ§é åè§£ã使ç¨ããå ´åã代å
¥æãå²ãæ¬å¼§ ( ... )
ãå¿
è¦ã§ãã
{ a, b } = { a: 1, b: 2 }
ã¯ã左辺㮠{ a, b }
ã弿ã®ã«ã¼ã«ã«ãããªãã¸ã§ã¯ããªãã©ã«ã§ã¯ãªããããã¯ã¨ã¿ãªããããããåä½ã§ã¯æå¹ãªæ§æã§ã¯ããã¾ããããããã({ a, b } = { a: 1, b: 2 })
ã¯æå¹ã§ãããconst { a, b } = { a: 1, b: 2 }
ãåæ§ã§ãã
ãããã使ãã®ã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ã§æ«å°¾ã®ã»ãã³ãã³ãè¨è¿°ãã¦ããªãå ´åã¯ã( ... )
å¼ã®åã«ã»ãã³ãã³ãè¨è¿°ããå¿
è¦ãããã¾ãããåã®è¡ã®é¢æ°ãå®è¡ããããã«ä½¿ç¨ãããå¯è½æ§ãããã¾ãã
ä¸ã®ã³ã¼ãã®ç価ãªãã¤ã³ããã¿ã¼ã³ã¯ãæå¹ãªæ§æã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã
const numbers = [];
const obj = { a: 1, b: 2 };
const { a: numbers[0], b: numbers[1] } = obj;
// ããã¯æ¬¡ã®ãã®ã¨ç価ã§ãã
// const numbers[0] = obj.a;
// const numbers[1] = obj.b;
// ããã¯å®å
¨ã«æ£ããããã¾ããã
代å
¥ãã¿ã¼ã³ãã¯ä»£å
¥æ¼ç®åã®å·¦è¾ºã¨ãã¦ã®ã¿ä½¿ç¨ã§ãã¾ãã+=
ã *=
ãªã©ã®è¤å代å
¥æ¼ç®åã§ã¯ä½¿ç¨ã§ãã¾ããã
ããããã®æ§é åè§£ãããããããã£ã¯ãæ¢å®å¤ ãæã¤ãã¨ãã§ãã¾ããæ¢å®å¤ã¯ãããããã£ãåå¨ããªãããå¤ã undefined
ã§ããå ´åã«ä½¿ç¨ããã¾ããããããã£ãå¤ null
ãæã¤å ´åã¯ä½¿ç¨ããã¾ããã
const [a = 1] = []; // a is 1
const { b = 2 } = { b: undefined }; // b is 2
const { c = 2 } = { c: null }; // c is null
æ¢å®å¤ã«ã¯ãä»»æã®å¼ãæå®ãããã¨ãã§ãã¾ããå¿ è¦ãªã¨ãã ãè©ä¾¡ããã¾ãã
const { b = console.log("hey") } = { b: 2 };
// `b` ãå®ç¾©ããã¦ãããæ¢å®å¤ãè©ä¾¡ããå¿
è¦ããªããããä½ããã®ãã°ãåºåãããã¨ã¯ããã¾ããã
æ®ä½ããããã£ã¨æ®ä½è¦ç´
æ§é åè§£ãã¿ã¼ã³ã¯ãæ®ä½ãããã㣠...rest
ã§çµäºãããã¨ãã§ãã¾ããé
åã®æ§é åè§£ã®å ´åãå復å¯è½ãªãã¸ã§ã¯ãã®æ®ãã®è¦ç´ ã rest
ï¼ã¾ãã¯ä»»æã®ååï¼ ã¨ããæ°ããé
åã«åãããã¾ãããªãã¸ã§ã¯ãã®æ§é åè§£ã®å ´åããªãã¸ã§ã¯ãã®æ§é åè§£ãã¿ã¼ã³ã«ãã£ã¦ã¾ã 鏿ããã¦ããªããåæå¯è½ãªãã¹ã¦ã®ããããã£ã rest
ã¨ããæ°ãããªãã¸ã§ã¯ãã«ã³ãã¼ããã¾ãã
ããæ£å¼ã«ã¯ã ...rest
æ§æã¯ãé
åã®æ§é åè§£ã§ã¯ãæ®ä½è¦ç´ ãããªãã¸ã§ã¯ãã®æ§é åè§£ã§ã¯ãæ®ä½ããããã£ãã¨å¼ã°ãã¾ãããå¤ãã®å ´åããããã¯ã¾ã¨ãã¦ãæ®ä½ããããã£ãã¨å¼ã°ãã¾ãã
const { a, ...others } = { a: 1, b: 2, c: 3 };
console.log(others); // { b: 2, c: 3 }
const [first, ...others2] = [1, 2, 3];
console.log(others2); // [2, 3]
æ®ä½ããããã£ã¯ããã¿ã¼ã³ã®æå¾ã®ãã®ã§ãªããã°ãªãããæ«å°¾ã®ã«ã³ãããã£ã¦ã¯ãªãã¾ããã
const [a, ...b,] = [1, 2, 3];
// SyntaxError: rest element may not have a trailing comma
// å¸¸ã«æå¾ã®è¦ç´ ã¨ãã¦æ®ä½æ¼ç®åã使ç¨ãããã¨ãèæ
®ãã¦ãã ããã
ä¾ é
åã®æ§é åè§£ ç°¡åãªä¾
const foo = ["one", "two", "three"];
const [red, yellow, green] = foo;
console.log(red); // "one"
console.log(yellow); // "two"
console.log(green); // "three"
代å
¥å
ããå¤ãè¦ç´ ãæã¤æ§é åè§£
ä»£å ¥ã®å³å´ã«æå®ãããé·ã N ã®é åããæ§é åè§£ããå ´åãä»£å ¥ã®å·¦å´ã«æå®ããã夿°ã®æ°ã N ãã大ããå ´åãæåã® N åã®å¤æ°ã«ã®ã¿å¤ãä»£å ¥ããã¾ããæ®ãã®å¤æ°ã®å¤ã¯ undefined ã¨ãªãã¾ãã
const foo = ["one", "two"];
const [red, yellow, green, blue] = foo;
console.log(red); // "one"
console.log(yellow); // "two"
console.log(green); // undefined
console.log(blue); // undefined
夿°ã®å
¥ãæ¿ã
æ§é åè§£ã使ç¨ãã¦ãè¤æ°ã®å¤æ°ã®å¤ãå ¥ãæ¿ãããã¨ãã§ãã¾ãã
æ§é åè§£ã使ç¨ããã« 2 ã¤ã®å¤ã交æããã«ã¯ã䏿夿°ï¼ã¾ãã¯ãä¸é¨ã®ä½æ°´æºè¨èªã«ããã¦ã¯ XOR 交æã¢ã«ã´ãªãºã ï¼ãå¿ è¦ã§ãã
let a = 1;
let b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
const arr = [1, 2, 3];
[arr[2], arr[1]] = [arr[1], arr[2]];
console.log(arr); // [1, 3, 2]
颿°ããè¿ãããé
åã®è§£æ
颿°ã¯é åãè¿ããã¨ãããã¾ããæ§é åè§£ã«ãã£ã¦ãè¿ãããé åã®ä½¿ç¨ãããç°¡æ½ã«è¨è¿°ã§ãã¾ãã
ãã®ä¾ã§ã¯ãf()
ã¯åºåã¨ãã¦å¤ [1, 2]
ãè¿ãã¦ãããæ§é åè§£ã«ãã 1 è¡ã§è§£æã§ãã¾ãã
function f() {
return [1, 2];
}
const [a, b] = f();
console.log(a); // 1
console.log(b); // 2
è¿å¤ã®ç¡è¦
é¢å¿ã®ãªãè¿å¤ã¯ç¡è¦ãããã¨ãã§ãã¾ãã
function f() {
return [1, 2, 3];
}
const [a, , b] = f();
console.log(a); // 1
console.log(b); // 3
const [c] = f();
console.log(c); // 1
ãã®ããã«ãã¹ã¦ã®è¿å¤ãç¡è¦ãããã¨ãã§ãã¾ãã
ãã ãããã®å ´åã¯ã颿°ãå¼ã³åºãã¦æ§é åè§£ãã¾ã£ãã使ç¨ããªãã»ããããæç¢ºã§ããããå¿ ãããè¿å¤ã使ç¨ããå¿ è¦ã¯ããã¾ããã
æ®ä½ããããã£ã¨ãã¦ã®ãã¤ã³ããã¿ã¼ã³ã®ä½¿ç¨é åã®æ§é åè§£ã®æ®ä½ããããã£ã¯ãå¥ã®é åããªãã¸ã§ã¯ãã®çµåãã¿ã¼ã³ã«ãããã¨ãã§ãã¾ããæ®ãã®è¦ç´ ãéããå¾ã«ä½æãããé åãããå é¨ã®æ§é åè§£ã§æ§é ãåè§£ãã¾ãããã®ããããã®æ¹æ³ã§ã¯å ã®å復å¯è½ãªè¦ç´ ã«åå¨ããããããã£ã«ã¢ã¯ã»ã¹ãããã¨ã¯ã§ãã¾ããã
const [a, b, ...{ length }] = [1, 2, 3];
console.log(a, b, length); // 1 2 1
const [a, b, ...[c, d]] = [1, 2, 3, 4];
console.log(a, b, c, d); // 1 2 3 4
ãããã®ãã¤ã³ããã¿ã¼ã³ã¯ãããããã®æ®ä½ããããã£ããªã¹ãã®æå¾ã®ãã®ã§ããéããå ¥ãåã«ãããã¨ãå¯è½ã§ãã
const [a, b, ...[c, d, ...[e, f]]] = [1, 2, 3, 4, 5, 6];
console.log(a, b, c, d, e, f); // 1 2 3 4 5 6
䏿¹ããªãã¸ã§ã¯ãã®æ§é åè§£ã§ã¯ãæ®ä½ããããã£ã¨ãã¦èå¥åããä¿æãããã¨ãã§ãã¾ããã
const { a, ...{ b } } = { a: 1, b: 2 };
// SyntaxError: `...` must be followed by an identifier in declaration contexts
let a, b;
({ a, ...{ b } } = { a: 1, b: 2 });
// SyntaxError: `...` must be followed by an assignable reference in assignment contexts
æ£è¦è¡¨ç¾ã«ä¸è´ãããã®ããã®å¤ã®å±é
æ£è¦è¡¨ç¾ãªãã¸ã§ã¯ãã® exec()
ã¡ã½ããã¯ä¸è´ãããã®ãè¦ã¤ããæåã«ä¸è´ããæååå
¨ä½ã®ä¸é¨ã¨ãæ£è¦è¡¨ç¾å
ã®åæ¬å¼§ã§å²ã¾ããã°ã«ã¼ãã«ä¸è´ããæååã®é¨åãå«ãé
åãè¿ãã¾ããæ§é åè§£ã«ãã£ã¦ãç°¡åã«ãã®é
åã®ä¸é¨åãåãåºãã¾ããã¾ãå¿
è¦ã§ãªãå ´åã¯ãå®å
¨ä¸è´ãç¡è¦ã§ãã¾ãã
function parseProtocol(url) {
const parsedURL = /^(\w+):\/\/([^/]+)\/(.*)$/.exec(url);
if (!parsedURL) {
return false;
}
console.log(parsedURL);
// ["https://developer.mozilla.org/ja/docs/Web/JavaScript",
// "https", "developer.mozilla.org", "ja/docs/Web/JavaScript"]
const [, protocol, fullHost, fullPath] = parsedURL;
return protocol;
}
console.log(
parseProtocol("https://developer.mozilla.org/ja/docs/Web/JavaScript"),
);
// "https"
ä»»æã®ã¤ãã¬ã¼ã¿ã¼ã§é
åã®æ§é åè§£ã®ä½¿ç¨
é åã®æ§é åè§£ãè¡ãã¨ãå³è¾ºã®å復å¯è½ãããã³ã«ãå¼ã³åºããã¾ãããããã£ã¦ãé åã«éãããä»»æã®å復å¯è½ãªãã¸ã§ã¯ããæ§é åè§£ãããã¨ãã§ãã¾ãã
const [a, b] = new Map([
[1, 2],
[3, 4],
]);
console.log(a, b); // [1, 2] [3, 4]
å復å¯è½ã§ãªããã®ã¯ãé åã¨ãã¦æ§é åè§£ã§ãã¾ããã
const obj = { 0: "a", 1: "b", length: 2 };
const [a, b] = obj;
// TypeError: obj is not iterable
å復å¯è½ãªãã¸ã§ã¯ãã¯ããã¹ã¦ã®ãã¤ã³ããä»£å ¥ãããã¾ã§ããå復å¦çãã¾ããã
const obj = {
*[Symbol.iterator]() {
for (const v of [0, 1, 2, 3]) {
console.log(v);
yield v;
}
},
};
const [a, b] = obj; // 0 㨠1 ã®ã¿åºå
æ®ãã®ãã¤ã³ãã¯è²ªæ¬²ã«è©ä¾¡ãããå¤ãå復å¯è½ãªãã¸ã§ã¯ãã使ç¨ãã代ããã«ãæ°ããé åã使ãã¾ãã
const obj = {
*[Symbol.iterator]() {
for (const v of [0, 1, 2, 3]) {
console.log(v);
yield v;
}
},
};
const [a, b, ...rest] = obj; // Logs 0 1 2 3
console.log(rest); // [2, 3] ï¼é
åï¼
ãªãã¸ã§ã¯ãã®æ§é åè§£ åºæ¬çãªä¾
const user = {
id: 42,
isVerified: true,
};
const { id, isVerified } = user;
console.log(id); // 42
console.log(isVerified); // true
æ°ãã夿°åã¸ã®ä»£å
¥
ãªãã¸ã§ã¯ããã夿°ãåãåºãã¦ããªãã¸ã§ã¯ãã®ããããã£ã¨ã¯ç°ãªãååã®å¤æ°ã«ä»£å ¥ãããã¨ãã§ãã¾ãã
const o = { p: 42, q: true };
const { p: foo, q: bar } = o;
console.log(foo); // 42
console.log(bar); // true
ããã§ãä¾ãã°ãconst {p: foo} = o
ã¯ãªãã¸ã§ã¯ã o
ãã p
ã¨ããååã®ããããã£ãåããfoo
ã¨ããååã®ãã¼ã«ã«å¤æ°ã¸ä»£å
¥ãã¾ãã
ããããã£ã¯ã次ã®ããã«ãããã¨ãã§ãã¾ãã
undefined
ã§ããå ´åã«åãã¦ãæ¢å®å¤ãå²ãå½ã¦ã¾ããconst { a: aa = 10, b: bb = 5 } = { a: 3 };
console.log(aa); // 3
console.log(bb); // 5
颿°ã®å¼æ°ã¨ãã¦æ¸¡ããããªãã¸ã§ã¯ãããã®ããããã£ã®å±é
颿°ã®å¼æ°ã«æ¸¡ããããªãã¸ã§ã¯ãã¯ã夿°ã«å±éãã颿°æ¬ä½å ã§ã¢ã¯ã»ã¹ãããã¨ãå¯è½ã§ãã ãªãã¸ã§ã¯ãã®ä»£å ¥ã«é¢ãã¦ã¯ãæ§é åè§£æ§æã«ãããæ°ãã夿°ã«å ã®ããããã£ã¨åãååã¾ãã¯ç°ãªãååãæããããã¨ãã§ããå ã®ãªãã¸ã§ã¯ããããããã£ãå®ç¾©ãã¦ããªãå ´åã®æ¢å®å¤ãå²ãå½ã¦ããã¨ãã§ãã¾ãã
ã¦ã¼ã¶ã¼ã«é¢ããæ å ±ãæ ¼ç´ãããªãã¸ã§ã¯ããèãã¦ã¿ã¾ãããã
const user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "Jane",
lastName: "Doe",
},
};
ããã§ã¯ãåæ ¼ãããªãã¸ã§ã¯ãã®ããããã£ãåãååã®å¤æ°ã«å±éããæ¹æ³ã示ãã¾ãã 弿°å¤ { id }
ã¯ã颿°ã«æ¸¡ããããªãã¸ã§ã¯ãã® id
ããããã£ãåãååã®å¤æ°ã«å±éãã颿°å
ã§ä½¿ç¨ã§ããããã«ãããã¨ã示ãã¾ãã
function userId({ id }) {
return id;
}
console.log(userId(user)); // 42
å±éãã夿°ã®ååãå®ç¾©ãããã¨ãã§ãã¾ãã ããã§ã¯ãdisplayName
ã¨ããããããã£ãå±éãã颿°æ¬ä½å
ã§ä½¿ç¨ããããã« dname
ã¨ããååã«å¤æ´ãã¦ãã¾ãã
function userDisplayName({ displayName: dname }) {
return dname;
}
console.log(userDisplayName(user)); // "jdoe"
å
¥ãåã«ãªã£ã¦ãããªãã¸ã§ã¯ããå±éãããã¨ãã§ãã¾ãã ä¸è¨ã®ä¾ã§ã¯ããããã㣠fullname.firstName
ã name
ã¨ãã夿°ã«å±éããã¦ãã¾ãã
function whois({ displayName, fullName: { firstName: name } }) {
return `${displayName} is ${name}`;
}
console.log(whois(user)); // "jdoe is Jane"
颿°ã®å¼æ°ã«å¯¾ããæ¢å®å¤ã®è¨å®
æ¢å®å¤ã¯ =
ã§æå®ãããã¨ãã§ããæå®ããããããã£ã渡ããããªãã¸ã§ã¯ãã«åå¨ããªãå ´åã夿°ã®å¤ã¨ãã¦ä½¿ç¨ããã¾ãã
æ¢å®å¤ãããµã¤ãºã 'big'
ã§ã座æ¨ã x: 0, y: 0
ã§ãåå¾ã 25 ã®é¢æ°ã§ãã
function drawChart({
size = "big",
coords = { x: 0, y: 0 },
radius = 25,
} = {}) {
console.log(size, coords, radius);
// ã°ã©ãã®æç»
}
drawChart({
coords: { x: 18, y: 30 },
radius: 30,
});
ä¸è¨ã® drawChart
ã®é¢æ°å¼ã³åºãå½¢å¼ã§ã¯ã次ã®ããã«ãã¦ãæ§é åè§£ããã左辺ã«ãå³è¾ºå´ã§ç©ºã®ãªãã¸ã§ã¯ããªãã©ã«ã代å
¥ãã¦ãã¾ãã
å³è¾ºã®ä»£å
¥ããªã颿°ãæ¸ããã¨ãã§ãã¾ããããããå³è¾ºã®ä»£å
¥ãåãé¤ããå ´åã颿°ã¯å®è¡ãããã¨ãã«å°ãªãã¨ãã²ã¨ã¤ã®å¼æ°ãæä¾ããããã¨ãæå¾
ãã¾ããããã®å½¢å¼ã§ã¯ä½ã弿°ãæå®ããã«åç´ã« drawChart()
ãå¼ã³åºããã¨ãã§ãã¾ãããã®è¨è¨ã¯å¼æ°ãæå®ããã«é¢æ°ãå¼ã³åºããããã«ãããå ´åã«å½¹ã«ç«ã¡ã¾ããããã䏿¹ã®å½¢å¼ã¯ããªãã¸ã§ã¯ãã確å®ã«é¢æ°ã«æ¸¡ãããå ´åã«å½¹ã«ç«ã¡ã¾ãã
詳ããã¯ãããã©ã«ã弿° > æ¢å®å¤ã®ããæ§é åè§£ã®å¼æ°ãåç §ãã¦ãã ããã
å ¥ãåã«ãªã£ããªãã¸ã§ã¯ãã¨é åã®æ§é åè§£const metadata = {
title: "Scratchpad",
translations: [
{
locale: "de",
localizationTags: [],
lastEdit: "2014-04-14T08:43:37",
url: "/de/docs/Tools/Scratchpad",
title: "JavaScript-Umgebung",
},
],
url: "/ja/docs/Tools/Scratchpad",
};
const {
title: englishTitle, // rename
translations: [
{
title: localeTitle, // rename
},
],
} = metadata;
console.log(englishTitle); // "Scratchpad"
console.log(localeTitle); // "JavaScript-Umgebung"
ã¤ãã¬ã¼ã¿ã¼ã§ã®æ§é åè§£ã®å©ç¨
const people = [
{
name: "Mike Smith",
family: {
mother: "Jane Smith",
father: "Harry Smith",
sister: "Samantha Smith",
},
age: 35,
},
{
name: "Tom Jones",
family: {
mother: "Norah Jones",
father: "Richard Jones",
brother: "Howard Jones",
},
age: 25,
},
];
for (const {
name: n,
family: { father: f },
} of people) {
console.log(`Name: ${n}, Father: ${f}`);
}
// "Name: Mike Smith, Father: Harry Smith"
// "Name: Tom Jones, Father: Richard Jones"
è¨ç®ããããªãã¸ã§ã¯ãã®ããããã£ã®ååã¨æ§é åè§£
ãªãã¸ã§ã¯ããªãã©ã«ã®ãããªè¨ç®ãããããããã£ã®ååãæ§é åè§£ã§ä½¿ç¨ã§ãã¾ãã
const key = "z";
const { [key]: foo } = { z: "bar" };
console.log(foo); // "bar"
ç¡å¹ãª JavaScript èå¥åãããããã£åã¨ãã¦ä½¿ç¨ãã
JavaScript ã§æå¹ãªä»£æ¿èå¥åãä¸ãããã¨ã«ãããJavaScript ã§æå¹ã§ã¯ãªãèå¥åã§ããããããã£åãæ§é åè§£ã§ä½¿ç¨ã§ãã¾ãã
const foo = { "fizz-buzz": true };
const { "fizz-buzz": fizzBuzz } = foo;
console.log(fizzBuzz); // true
ããªããã£ãå¤ã®æ§é åè§£
ãªãã¸ã§ã¯ãã®æ§é åè§£ã¯ãããããã£ã¸ã®ã¢ã¯ã»ã¹ã¨ã»ã¼ç価ã§ãã ã¤ã¾ããããªããã£ãå¤ãåè§£ãããã¨ããã¨ãå¤ã対å¿ããã©ããã¼ãªãã¸ã§ã¯ãã«åå¾ãããããããã£ã¯ã©ããã¼ãªãã¸ã§ã¯ãã«ã¢ã¯ã»ã¹ããããã¨ã«ãªãã¾ãã
const { a, toFixed } = 1;
console.log(a, toFixed); // undefined Æ toFixed() { [native code] }
ããããã£ã¸ã®ã¢ã¯ã»ã·ããªãã£ã¨åæ§ã«ãnull
ã undefined
ãæ§é åè§£ãã㨠TypeError
ãçºçãã¾ãã
const { a } = undefined; // TypeError: Cannot destructure property 'a' of 'undefined' as it is undefined.
const { b } = null; // TypeError: Cannot destructure property 'b' of 'null' as it is null.
ããã¯ããã¿ã¼ã³ã空ã®ã¨ãã«ãèµ·ããã¾ãã
const {} = null; // TypeError: Cannot destructure 'null' as it is null.
é
åã¨ãªãã¸ã§ã¯ãã®æ§é åè§£ã®çµã¿åãã
é
åã¨ãªãã¸ã§ã¯ãã®æ§é åè§£ã¯çµã¿åããããã¨ãã§ãã¾ããé
å props
ã® 3 çªç®ã®è¦ç´ ã«ãããªãã¸ã§ã¯ãã® name
ããããã£ã欲ããå ´åãæ¬¡ã®æä½ãã§ãã¾ãã
const props = [
{ id: 1, name: "Fizz" },
{ id: 2, name: "Buzz" },
{ id: 3, name: "FizzBuzz" },
];
const [, , { name }] = props;
console.log(name); // "FizzBuzz"
ãªãã¸ã§ã¯ããåå²ãããã¨ãã«ã¯ãããã¿ã¤ããã§ã¼ã³ãåç
§ããã
ãªãã¸ã§ã¯ããåå²ãããã¨ãã§ãèªåèªèº«ã®ããããã£ãã¢ã¯ã»ã¹ãããªãå ´åã¯ããããã¿ã¤ããã§ã¼ã³ã辿ã£ã¦åç §ãç¶ãããã¾ãã
const obj = {
self: "123",
__proto__: {
prot: "456",
},
};
const { self, prot } = obj;
console.log(self); // "123"
console.log(prot); // "456"
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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