가끔은 너무 많은 변수를 작성하는 것이 정말 귀찮고 지루하고 거의 반복적인 작업이 많습니다. 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 중국어 웹사이트를 주목하세요!

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

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

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
