ES6 학습 변수 분해 및 할당
가끔은 너무 많은 변수를 작성하는 것이 정말 귀찮고 지루하고 거의 반복적인 작업이 많습니다. es6에서는 변수를 선언하고 변수를 할당하는 등 더욱 편리한 다양한 방법을 제공합니다. 다음 글에서는 ES6의 변수 구조해제와 할당에 관한 관련 정보를 주로 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.
변수 구조 분해 할당
ES6에서는 특정 패턴과 변수 할당에 따라 배열과 객체에서 추출이 가능합니다.
배열의 구조 분해 할당
var [a,b,c] = [1,2,3]; a // 1; b // 2; c // 3;
위 코드는 배열에서 값을 추출하여 변수에 할당할 수 있음을 나타냅니다. 해당 위치.
본질적으로 이런 작성 방식은 "패턴 매칭"입니다. 등호 양쪽의 패턴이 동일한 한 왼쪽의 변수에 해당 값이 할당됩니다.
let [foo,[[bar],baz]] = [1,[[2],3]]; foo //1; bar //2; baz //3; let [,,third] = ['foo','bar','baz']; third //'baz' let [head,...tail] = [1,2,3,4] head //1; tail //[2,3,4]
구조 분해에 실패하면 변수 값은 정의되지 않은 값이 됩니다.
let [x,y,z] = ['a'] x // 'a'; y // undefined z //[]
불완전한 분해
등호 왼쪽의 패턴이 배열의 일부에만 일치하는 경우 등호 오른쪽에 있는 구조 분해는 여전히 성공할 수 있습니다. 이 상황을 불완전 분해라고 합니다.
let [x,y] = [1,2,3] x //1 y //2
등호 오른쪽이 배열이 아닌 경우 오류가 발생합니다. (횡단 가능한 구조가 없습니다).
특정 데이터 구조에 Iterator 인터페이스가 있는 한 배열 형태의 구조 분해 할당을 사용할 수 있습니다
function* fibs(){ var a = 0; var b = 1; while(true){ yield a; [a,b] = [b,a+b]; } } var [first,second,third,fourth,fifth,sixth] = fibs(); sixth // 5
fibs는 기본적으로 Iterator 인터페이스가 있는 생성기 함수, 구조 분해 할당은 이 인터페이스에서 값을 차례로 가져옵니다.
기본값
구조 분해 할당을 사용하면 기본값을 지정할 수 있습니다.
var [foo=true] = []; foo //true
ES6은 내부적으로 엄격한 동등 연산자(===)를 사용하여 위치에 값이 있는지 확인합니다. 따라서 배열 멤버가 정의되지 않음과 엄밀히 동일하지 않으면 기본값이 적용되지 않습니다.
var [x = 1] = [undefined] x // 1 var [x = 1] = [null] x // null
표현식을 기본값으로 사용할 수도 있습니다. 표현식은 지연 평가되며 다음과 같은 경우에만 사용됩니다. 그 가치는 때가 되면 평가될 것이다.
function f(){ console.log('aaa') } let [x = f()] = [1]
위 코드에서는 x가 값을 얻을 수 있으므로 함수 f는 실행되지 않습니다.
기본값은 구조분해 할당의 다른 변수를 참조할 수 있으나 해당 변수가 선언되어 있어야 합니다.
객체의 구조 분해 할당
구조 분해 할당은 객체뿐만 아니라 배열에도 적용할 수 있습니다.
var {foo,bar} = {foo:'aaa',bar:'bbb'} foo // 'aaa' bar // 'bbb'
객체와 배열의 구조 분해 할당의 한 가지 차이점은 배열의 요소가 순서대로 정렬되고 변수의 값이 해당 항목에 따라 결정된다는 것입니다. 위치 개체의 속성은 순서가 없으며 올바른 값을 얻으려면 변수의 이름이 속성과 동일해야 합니다.
var {bar,foo} = {foo:'aaa',bar:'bbb'} foo //'aaa' bar //'bbb' var {baz} = {foo:'aaa',bar:'bbb'} baz //undefined
변수 이름이 속성 이름과 일치하지 않는 경우 다음과 같이 작성해야 합니다.
var {foo:baz} = {foo:'aaa'} baz //'aaa'
사실 객체의 구조 분해 할당은 다음 형식의 약어입니다.
var {foo:foo,bar:bar} = {foo:'aaa',bar:'bbb'}
객체의 구조 분해 할당의 내부 메커니즘 객체는 먼저 동일한 이름을 가진 속성을 찾은 다음 해당 변수에 할당하는 것입니다. 해당 변수의 경우 실제로 값이 할당되는 것은 전자가 아니라 후자입니다.
단, 위 작성방법을 사용하는 경우 변수의 선언과 할당이 함께 이루어집니다. let과 const의 경우 변수를 다시 선언할 수 없으므로 이전에 할당된 변수를 한 번 선언하면 오류가 발생합니다.
객체 해체는 중첩된 객체에도 사용할 수 있습니다.
var obj = { p: [ 'hello' , { y : 'world' } ] } var {p:[x,{y}]} = obj x //'hello' y //'world'
이때 p는 변수가 아닌 패턴이므로 값이 할당되지 않습니다.
객체의 구조 분해 할당은 기본값을 지정할 수도 있습니다. 기본값의 유효 조건은 객체의 속성 값이 정의되지 않음과 동일하다는 것입니다.
var {x=3} = {x:undefined} x //3 var {x=3} = {x:null} x //null
구조 분해 모드가 중첩 객체이고 하위 객체가 위치한 상위 속성이 없으면 오류가 보고됩니다.
var {foo:{bar}} = {baz:'baz'}
ES6 학습의 변수 구조 분해 및 할당과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

이 튜토리얼은 Chart.js를 사용하여 파이, 링 및 버블 차트를 만드는 방법을 설명합니다. 이전에는 차트 유형의 차트 유형을 배웠습니다. JS : 라인 차트 및 막대 차트 (자습서 2)와 레이더 차트 및 극지 지역 차트 (자습서 3)를 배웠습니다. 파이 및 링 차트를 만듭니다 파이 차트와 링 차트는 다른 부분으로 나뉘어 진 전체의 비율을 보여주는 데 이상적입니다. 예를 들어, 파이 차트는 사파리에서 남성 사자, 여성 사자 및 젊은 사자의 비율 또는 선거에서 다른 후보자가받는 투표율을 보여주는 데 사용될 수 있습니다. 파이 차트는 단일 매개 변수 또는 데이터 세트를 비교하는 데만 적합합니다. 파이 차트의 팬 각도는 데이터 포인트의 숫자 크기에 의존하기 때문에 원형 차트는 값이 0 인 엔티티를 그릴 수 없습니다. 이것은 비율이 0 인 모든 엔티티를 의미합니다

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...
