그룹과 대상의 해체 값
2764 단어 es6
1. 수조의 해체 값 let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3
let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []
/**************** , , ******************/
let [x, y] = [1, 2, 3];
x // 1
y // 2
let [a, [b], d] = [1, [2, 3], 4];
a // 1
b // 2
d // 4
1. 해체에 성공하지 못하면 변수의 값은 undefined
과 같다.2、
등호의 오른쪽은 수조가 아니다(또는 엄밀히 말하면 범람할 수 있는 구조가 아니다). 그러면 잘못 보고될 것이다.
3. 해구부치는 기본값을 지정할 수 있다(<1>엄격 상등 연산자(===
). 한 위치에 값이 있는지 판단할 수 있기 때문에 한 그룹의 구성원이 엄격하게undefined
와 같아야만 기본값이 효력이 발생한다. <2> 기본값은 하나의 표현식이다. 그러면 이 표현식은 타성적으로 값을 구하는 것이다. 즉, 사용할 때만 값을 구하는 것이다.<3> 기본값은 해체 값의 다른 변수를 인용할 수 있지만, 이 변수는 이미 성명해야 합니다)//
let [foo] = 1;
let [foo] = false;
let [foo] = NaN;
let [foo] = undefined;
let [foo] = null;
let [foo] = {};
//
let [x = 1] = [undefined];
x // 1
let [x = 1] = [null];
x // null
//
function f() {
console.log('aaa');
}
let [x = f()] = [1]; // x=1
2. 대상의 해체 할당값
1. 수조 해체 값과의 차이
수조의 원소는 순서대로 배열되고 변수의 수치는 그 위치에 의해 결정된다.대상의 속성은 순서가 없고 변수는 속성과 동명이어야만 정확한 값을 얻을 수 있다.let { bar, foo } = { foo: 'aaa', bar: 'bbb' };
foo // "aaa"
bar // "bbb"
let { baz } = { foo: 'aaa', bar: 'bbb' };
baz // undefined
2. 대상의 해체 부치는 기존 대상의 방법을 어떤 변수에 쉽게 부칠 수 있다//
let { log, sin, cos } = Math;
//
const { log } = console;
log('hello') // hello
3. 대상의 해체 부수값의 내부 메커니즘은 먼저 동명 속성을 찾은 다음에 대응하는 변수를 부여한다.진정으로 가치가 부여된 것은 후자이지 전자가 아니다.let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
baz // "aaa"
foo // error: foo is not defined
//foo ,baz 。 baz, foo。
4. 해체 모드가 중첩된 대상이고 하위 대상이 있는 부모 속성이 존재하지 않으면 오류가 발생합니다.//
let {foo: {bar}} = {baz: 'baz'};
// foo , 。 bar , 。 , foo undefined,
기본값:
1. 배열과 마찬가지로 기본값이 적용되는 조건은 대상의 속성 값이 엄격하다undefined
1>명시된 변수를 할당 해제에 사용하려면 매우 조심해야 한다//
let x;
{x} = {x: 1};
// SyntaxError: syntax error
//
let x;
({x} = {x: 1});
2、oh may Gad!!문자열도 값을 해체할 수 있다const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
3. 수치와 부울 값의 해체 값(먼저 대상으로 전환)은 undefined
과 null
이 대상으로 전환할 수 없기 때문에 그것들에 대해 해체 값을 하면 모두 틀릴 수 있다.let { prop: x } = undefined; // TypeError
let { prop: y } = null; // TypeError
4. 함수 매개 변수의 해체 값
6. 괄호 문제.공식 문서를 보는 것을 권장합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript로 카드 놀이를 넘기는 애니메이션을 만들려고했습니다.
카드를 넘기는 애니메이션을 만들어 보았습니다.
폴더 구성은 다음과 같습니다.
코드는 다음과 같습니다.
card_turning.html
다음은 JavaScript 코드입니다.
cardTurning.js
결과는, 이런 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3
let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []
/**************** , , ******************/
let [x, y] = [1, 2, 3];
x // 1
y // 2
let [a, [b], d] = [1, [2, 3], 4];
a // 1
b // 2
d // 4
//
let [foo] = 1;
let [foo] = false;
let [foo] = NaN;
let [foo] = undefined;
let [foo] = null;
let [foo] = {};
//
let [x = 1] = [undefined];
x // 1
let [x = 1] = [null];
x // null
//
function f() {
console.log('aaa');
}
let [x = f()] = [1]; // x=1
1. 수조 해체 값과의 차이
수조의 원소는 순서대로 배열되고 변수의 수치는 그 위치에 의해 결정된다.대상의 속성은 순서가 없고 변수는 속성과 동명이어야만 정확한 값을 얻을 수 있다.
let { bar, foo } = { foo: 'aaa', bar: 'bbb' };
foo // "aaa"
bar // "bbb"
let { baz } = { foo: 'aaa', bar: 'bbb' };
baz // undefined
2. 대상의 해체 부치는 기존 대상의 방법을 어떤 변수에 쉽게 부칠 수 있다
//
let { log, sin, cos } = Math;
//
const { log } = console;
log('hello') // hello
3. 대상의 해체 부수값의 내부 메커니즘은 먼저 동명 속성을 찾은 다음에 대응하는 변수를 부여한다.진정으로 가치가 부여된 것은 후자이지 전자가 아니다.
let { foo: baz } = { foo: 'aaa', bar: 'bbb' };
baz // "aaa"
foo // error: foo is not defined
//foo ,baz 。 baz, foo。
4. 해체 모드가 중첩된 대상이고 하위 대상이 있는 부모 속성이 존재하지 않으면 오류가 발생합니다.
//
let {foo: {bar}} = {baz: 'baz'};
// foo , 。 bar , 。 , foo undefined,
기본값:
1. 배열과 마찬가지로 기본값이 적용되는 조건은 대상의 속성 값이 엄격하다
undefined
1>명시된 변수를 할당 해제에 사용하려면 매우 조심해야 한다//
let x;
{x} = {x: 1};
// SyntaxError: syntax error
//
let x;
({x} = {x: 1});
2、oh may Gad!!문자열도 값을 해체할 수 있다
const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
3. 수치와 부울 값의 해체 값(먼저 대상으로 전환)은
undefined
과 null
이 대상으로 전환할 수 없기 때문에 그것들에 대해 해체 값을 하면 모두 틀릴 수 있다.let { prop: x } = undefined; // TypeError
let { prop: y } = null; // TypeError
4. 함수 매개 변수의 해체 값
6. 괄호 문제.공식 문서를 보는 것을 권장합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript로 카드 놀이를 넘기는 애니메이션을 만들려고했습니다.카드를 넘기는 애니메이션을 만들어 보았습니다. 폴더 구성은 다음과 같습니다. 코드는 다음과 같습니다. card_turning.html 다음은 JavaScript 코드입니다. cardTurning.js 결과는, 이런 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.