변수 사용하는 문 [ 테스트 샘플 노드 환경에서 테스트하는 브라우저 환경이 코드 ES6와 완벽하게 호환되지 않습니다 ]
코드의 조각, 패키지의 내용을 포함하기 위해 사용될 수있다 ES6 {} {}는 호출 코드 블록 ( 로컬 영역 )
송출 키워드 [ 변수 선언 ]
특성 :
1. 블록 레벨 범위 [ 로컬를 명령 블록에서 ]
[개선 변수 선언하지 2. 변수를 사용할 수없는 변수 선언되지 전에 ]
3. [일시 데드 존 변수 선언 영역의 앞 ]
4. 문 [반복하지 같은 변수 선언을 반복 할 수 없습니다 동일한 코드 블록을 }
CONST 키워드를 [ 상수 선언 (일반적으로 일정한 대문자를 의미 )]
: 특성 [ 준수 선언을 할 수있는을 특성 변수는 다음 두 가지의 특성을 추가 ]
1 [초기화 선언 문이 동시에 할당해야 ]
2, 및 편집 할 수없는
두 해체
1 해체 어레이 할당 [ 좌측 일치 떠날때 값이 정의되어, 오른쪽의 값이고, 변수 ]
완전히 해체되지 [ 정확히 일치하는 데이터에 대해 ]
예를 :
하자 [A, B, C = [1,2,3];
불완전한 해체 [ 다른 데이터에 대해 ]
A는, 데이터가 오직 값이 정의되는 변수 선언보다 왼쪽
(B), 추가 데이터 엔트리의 오른쪽 측면을 고려하지 않고 무시
예를 :
하자 [A, B], D = [1, [2, 3, 4; // A = 1; B = 2; D = 4
해체 세트 { 이용한 확장 연산기는 ... ]
A는, ... 꼬리 전류가 모두 오른쪽 조성물 값 비교할 배열 반환
등을 :
송출 [헤드, 테일 ...] = [1,2 ,. 3 ,. 4.]; // 헤드 = 1]. 꼬리 = 2 ,. 3 ,. 4] //이 축적 동작 송출 된 SUM = 0 ; 기능 테스트 (... ARR) { // 확장 연산기 배열의 형태로 수신 REST 파라미터 파라미터 ------> 객체 인수 어레이 매개 변수의 사용을 권장되지 파라미터 리턴 // , ARR = 1,2,3,4 . (5)] 에 대해 (I = 0 송출; I는 <arr.length; I는 ++ ) { SUM + = ARR [I]; } } 테스트 ( 1,2,3,4,5);
기본값 [ undefined 값 정확하게 일치 유사한, 발효 기본값 ]
예 :
하자 [X, Y = 'B'] = 'A']; // X = 'A', Y = 'B'
디폴트 값은 함수이다
주 : 제 매칭 값이 정확하게 동일 미정, 디폴트 할당 연산자 값이면 값이 일치하는지 여부를 결정하고, 그렇지 않으면 기본 할당 동작이 수행되지 않는
예 :
기능 테스트 () { CONSOLE.LOG ( "테스트" ); 반환 2 ; } 하자 [X = 시험 ()] = []; CONSOLE.LOG (X); // 테스트 2
2 대물 할당 해체 [가변 속성 명에 대응하는 권리가 존재하지 않는 왼쪽, 오브젝트의 속성 값은 정의되지 않는다, 즉, 객체 선언되지 속성은 정의되지 않는다]
원래 구조 할당 개체 [ 변수의 최종 선언 변수 이름 변경 후는 변수 이름 바꾸기 ]
예를 :
= {이름 'NZC', 나이 : 18이 {: MyName로 연령 myAge라는 송출 이름} } // 상기 코드는 동일한 이름을 가진 객체 속성 취득 오른쪽 일치 코드 명 {다음 왼쪽 유사하고 바뀐 이름에 할당 된 속성 값 MyName로 == 변수는 "MyName로 = 'NZC'] 있도록 MyName로 = 'NZC를'하자를 , 송출 된 myAge라는 = 18이고;
주문하지 않은 객체의 속성은, 변수 만의 올바른 값에 같은 이름의 재산 후 촬영해야 [ 같은 축약 할 수의 이름을 바꿀 ]
예 :
= {이름 : 'NZC', 나이 : 18은 {: 이름, 나이 나이 송출 이름} } // 로 축약 송출 {이름, 나이} = {이름 : 'NZC', 나이 : 18이다 } // 다음 코드에 비유를 이름은하자 'NZC'= ; 시대하자 = 18입니다;
중첩 된 객체의 해체
예 :
사람의 PARAM = {송출 : [ 'NZC', {나이 : 18이다 }]}; 송출 {PARAM이 : [이름, 나이는 {}]} = 사람이; // 이름 = 'NZC'나이 = 18이다 // PARAM 아래에 비유 태그 [이름 {나이}, 그 자체를 선언하지 않는 한 변경된다 PARAM 변수 즉, 존재하지 않는 {PARAM : 이름 {하자 나이}]} = {PARAM : 'NZC'{연령 : 18} ]}
디폴트 값 ( 효과 조건 기본적으로, 객체의 속성 값을 정확히 동일하게 정의되지 않은 )
EG :
// 이름 = 'nzchs'-> 변수 이름 디폴트 값, 연령 : myAge라는 = 21-> myAge라는 기본 [연령 이름 바꾸기 myAge라는 다음} 기본 값을 주어 , {이름 = 'nzchs'하자 myAge라는 = 21} = 세 이름은 {: 'NZC', 18 세입니다 } 송출 {이름 = 'nzchs', 나이 : 21입니다 myAge라는 =} = {이름 : 'NZC'}
3 해체 문자열 할당
해체는 문자열 오브젝트가 유사한 배열로 변환된다.
예를 들면 :
[A, B, C] = '안녕하세요'하자; // A = H, B = E, C = L
길이 속성 해체
예 :
{길이 보자 LEN을} = '안녕하세요'; // . LEN = 길이 5 [오브젝트 속성 배열의 우측 클래스 일치 문자열로 변환되고 그 값은 변경 변수 LEN에 할당]
도 4는 과제를 destructuring 수치 부울 값
해체시 우측은 숫자 및 부울 값 인 경우, 대응하는 제 1 참조 데이터베이스 타입 오브젝트로 변환한다
예 :
{송출 toString : str1과} = 123; // 함수 str1과는 === Number.prototype.toString가 true를 돌려 송출이 {toString이 : STR2이} = 진정한 ; // 기능은 사실과 str2 === Boolean.prototype.toString을 반환
도 5는, 함수 파라미터들의 할당 해체
destructuring 할당 통과 기본 배열 파라미터
등을 :
기능 추가 ([X, Y가]) { 반환 X + Y를} 추가 ([ . 1, 2); // 함수 값 3 닦이
기본 값으로 함수 매개 변수는
예 :
기능 테스트 ({X = 0, Y는 = 0 }) { 반환 [X, Y] } // 함수 호출 ({X :. 3 Y :. 8}) 시험; // 리턴 값 [. 3 ,. 8] 시험 ({X :. 3}) // 반환 값 [. 3, 0] 테스트 ({}) // 반환 값은 [0, 0] 테스트 (); // `의 x` 속성 destructure 수없는 오류가 정의되지 '또는'널 '
셋째, 해체의 일반적인 사용
하나, 가변의 교환 가치
예 :
있도록 X = 1 ; Y는하자 = 2 ; [X, Y] = [Y, X]; CONSOLE.LOG (X, Y); // 2 1
2, 함수 매개 변수의 할당 :
EG :
// [A = 0, B의 = 1이다.] = 1이다.] = A. 1, B의 = 1 개. 기능 테스트 ([A = 0, B의 = 1이다. ]) { 복귀 A + B] } 테스트 ([ 1.]) // 2의 값을 반환
도 3은 데이터 객체를 추출하는
예 :
ID {OBJ = 송출 : 데이터의 "OK": 42, 상태이다 [867, 5309 ]}, 송출는 {ID, 상태 데이터 : 번호} = OBJ; // 에 대응하는 변수를 정의
도 4에서, 입력 모듈 지정 방법
CONST {SourceMapConsumer, SourceNode} = (이하 "소스지도")을 필요로;
5 맵 구조를 횡단
VAR의 지도 = 새로운 지도 (); map.set ( '이름', 'NZC' ); map.set ( '세', 18 ); 위한 MAP (여기서 키 값]하자) { CONSOLE.LOG는 (키 +는 + 값 "이다"); // 이름이 NZC 연령은 18 }