æ«å°¾ã«ã³ã
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
æ«å°¾ã«ã³ã (ãæå¾ã®ã«ã³ããã¨å¼ã°ãããã¨ãããã¾ã) ã¯ãJavaScript ã®ã³ã¼ãã«æ°ããè¦ç´ ã弿°ãããããã£ã追å ããã¨ãã«å½¹ç«ã¡ã¾ããæ°ããããããã£ã追å ããã¨ããæçµè¡ã§ãã§ã«æ«å°¾ã«ã³ãã使ç¨ãã¦ããã°ãæçµè¡ãä¿®æ£ãããã¨ãªãæ°ããè¡ã追å ã§ãã¾ããããã«ãã£ã¦ããã¼ã¸ã§ã³ç®¡çã®å·®åãããæ´ç·´ãããã³ã¼ãç·¨éã®ç ©éãã軽æ¸ã§ãã¾ãã
JavaScript ã¯ãå½åããé åãªãã©ã«ã§æ«å°¾ã«ã³ãã使ç¨ã§ãã¾ããããªãã¸ã§ã¯ããªãã©ã«ã颿°ã®å¼æ°ãååä»ãã¤ã³ãã¼ããååä»ãã¨ã¯ã¹ãã¼ããªã©ã«ããã¦ããæ«å°¾ã«ã³ããåæã«ä½¿ç¨ãããã¨ãã§ããããã«ãªãã¾ããã
ããããJSON ã§ã¯æ«å°¾ã«ã³ãããã¹ã¦è¨±å®¹ãã¦ãã¾ããã
解説
JavaScript ã§ãã«ã³ãåºåãã®å¤ã®ãªã¹ããåãå ¥ããããæå¾ã®ã¢ã¤ãã ã®å¾ã«ããã«å¤ãç¶ããã¨ãããå ´åãæ«å°¾ã«ã³ãã使ç¨ãããã¨ãã§ãã¾ããæ¬¡ã®ãããªãã®ãããã¾ãã
- é åãªãã©ã«
- ãªãã¸ã§ã¯ããªãã©ã«
- 弿°å®ç¾©
- 颿°å¼ã³åºã
- ååä»ãã¤ã³ãã¼ã
- ååä»ãã¨ã¯ã¹ãã¼ã
- åçã¤ã³ãã¼ã
- é åããªãã¸ã§ã¯ãã®æ§é åè§£
ããããã¹ã¦ã®å ´åã«ããã¦ãæ«å°¾ã®ã«ã³ãã¯å®å ¨ã«ä»»æã§ãããããã°ã©ã ã®æå³ã¥ãã«ä½ãå½±é¿ãä¸ãã¾ããã
ç¹ã«ãè¤æ°è¡ã«ããããªã¹ãã®ã¢ã¤ãã ã追å ã»é¤å»ã»ä¸¦ã¹æ¿ããè¡ãéã«æç¨ã§ããããã¯ã夿´ãå¿ è¦ãªè¡æ°ãæ¸ãããã¨ãã§ãããããç·¨é使¥ãå·®åã¬ãã¥ã¼ã®ä¸¡æ¹ã«å½¹ç«ã¡ã¾ãã
[
"foo",
+ "baz",
"bar",
- "baz",
]
ä¾
>ãªãã©ã«ã®æ«å°¾ã«ã³ã
é å
JavaScript ã¯é åã®æ«å°¾ã«ã³ããç¡è¦ãã¾ãã
const arr = [
1,
2,
3,
];
arr; // [1, 2, 3]
arr.length; // 3
2 ã¤ä»¥ä¸ã®æ«å°¾ã«ã³ããããå ´åãçç¥ï¼ã¾ãã¯ç©´ï¼ãä½ããã¾ããç©´ãããé
åã¯çé
åã¨å¼ã°ãã¾ã (å¯é
åã¯ç©´ãããã¾ãã)ãé
åãããã¨ãã° Array.prototype.forEach() ã Array.prototype.map() ã§å復å¦çããã¨ããç©´ã¯ã¹ãããããã¾ããçé
åã¯ä¸è¬çã«å¥½ã¾ãããªããããæ«å°¾ã«è¤æ°ã®ã«ã³ããæã¤ãã¨ã¯é¿ããã¹ãã§ãã
const arr = [1, 2, 3, , ,];
arr.length; // 5
ãªãã¸ã§ã¯ã
ãªãã¸ã§ã¯ããªãã©ã«ã§ãæ«å°¾ã«ã³ãã使ç¨ã§ãã¾ãã
const object = {
foo: "bar",
baz: "qwerty",
age: 42,
};
颿°ã®æ«å°¾ã«ã³ã
颿°ã®å¼æ°ãªã¹ãã§ããæ«å°¾ã«ã³ãã使ç¨ã§ãã¾ãã
弿°å®ç¾©
次㮠2 ã¤ã®é¢æ°å®ç¾©ã¯ã¨ãã«æå¹ã§çãããã®ã§ããæ«å°¾ã«ã³ãã¯ã颿°ã® length ããããã£ã arguments ãªãã¸ã§ã¯ãã«å½±é¿ãä¸ãã¾ããã
function f(p) {}
function f(p,) {}
(p) => {};
(p,) => {};
æ«å°¾ã«ã³ãã¯ãã¯ã©ã¹ããªãã¸ã§ã¯ãã®ã¡ã½ããå®ç¾©ã§ã使ç¨ã§ãã¾ãã
class C {
one(a,) {}
two(a, b,) {}
}
const obj = {
one(a,) {},
two(a, b,) {},
};
颿°å¼ã³åºã
次㮠2 ã¤ã®é¢æ°å¼ã³åºãã¯ã¨ãã«æå¹ã§çãããã®ã§ãã
f(p);
f(p,);
Math.max(10, 20);
Math.max(10, 20,);
䏿£ãªæ«å°¾ã«ã³ã
颿°ã®å®ç¾©ãå¼ã³åºãã«ããã¦å¼æ°ãã«ã³ããããªãã¨ãSyntaxError ãçºçãã¾ããããã«ãæ®ä½å¼æ°ã使ç¨ãã¦ããã¨ãã¯ãæ«å°¾ã«ã³ãã¯ä½¿ç¨ã§ãã¾ããã
function f(,) {} // SyntaxError: missing formal parameter
(,) => {}; // SyntaxError: expected expression, got ','
f(,) // SyntaxError: expected expression, got ','
function f(...p,) {} // SyntaxError: parameter after rest parameter
(...p,) => {} // SyntaxError: expected closing parenthesis, got ','
æ§é åè§£ã§ã®æ«å°¾ã«ã³ã
æ«å°¾ã«ã³ãã¯ãæ§é åè§£ãã¿ã¼ã³ã®ä¸ã§ã使ç¨ã§ãã¾ãã
// æ«å°¾ã«ã³ãä»ãã§é
åãæ§é åè§£
[a, b,] = [1, 2];
// æ«å°¾ã«ã³ãä»ãã§ãªãã¸ã§ã¯ããæ§é åè§£
const o = {
p: 42,
q: true,
};
const { p, q, } = o;
ãã ããæ®ä½è¦ç´ ãåå¨ããå ´åããã®å¾ã«ã«ã³ããä»ãããã¨ã¯ã§ãã¾ããã
const [a, ...b,] = [1, 2, 3];
// SyntaxError: rest element may not have a trailing comma
JSON ã®æ«å°¾ã«ã³ã
JSON 㯠JavaScript ã®æ§æã®ã¨ã¦ãéããããµãã»ããã«åºã¥ãã¦ãããããJSON ã§ã¯æ«å°¾ã«ã³ãã¯ä½¿ç¨ãããã¨ãã§ãã¾ããã
ã©ã¡ãã®è¡ã SyntaxError ãçºçãã¾ãã
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');
// SyntaxError JSON.parse: unexpected character
// at line 1 column 14 of the JSON data
æ£ãã JSON ãè§£éããã«ã¯ãã«ã³ããçç¥ãã¦ãã ããã
JSON.parse("[1, 2, 3, 4 ]");
JSON.parse('{"foo" : 1 }');
ååä»ãã¤ã³ãã¼ãããã³ååä»ãã¨ã¯ã¹ãã¼ãã®æ«å°¾ã«ã³ã
æ«å°¾ã«ã³ãã¯ååä»ãã¤ã³ãã¼ããååä»ãã¨ã¯ã¹ãã¼ãã§ãæå¹ã§ãã
ååä»ãã¤ã³ãã¼ã
import {
A,
B,
C,
} from "D";
import { X, Y, Z, } from "W";
import { A as B, C as D, E as F, } from "Z";
ååä»ãã¨ã¯ã¹ãã¼ã
export {
A,
B,
C,
};
export { A, B, C, };
export { A as B, C as D, E as F, };
åçã¤ã³ãã¼ãã®æ«å°¾ã«ã³ã
æ«å°¾ã«ã³ãã¯ãå®è¡ç°å¢ã 2 ã¤ç®ã® options 弿°ãå®è£
ãã¦ããå ´åã«éããåçã¤ã³ãã¼ãã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
import("D",);
import(
"D",
{ with: { type: "json" } },
);
æ°éæ¥é è¾
ã¡ã¢:
éååã®æ«å°¾ã«ã³ãã¯ãå®éã«ã¯ãã®æå³ã¥ãããæ£ç¢ºã« nãã«ä¸è´ããããã®ããããå°ãªãã¨ã nãã«ä¸è´ããããã®ã¸ã¨å¤æ´ãã¾ãã
/x{2}/; // Exactly 2 occurrences of "x"; equivalent to /xx/
/x{2,}/; // At least 2 occurrences of "x"; equivalent to /xx+/
/x{2,4}/; // 2 to 4 occurrences of "x"; equivalent to /xxx?x?/
仿§æ¸
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- ææ³ã¨ãã¼ã¿åã¬ã¤ã