Chapter 4. Collection - Array, Map and Symbol
Array
배열의 여러 요소에 접근하기 위해 destructuring을 사용할 수 있다.
ES5>>
1 2 3 4 5 6 7 | let users = [“Sam”, “Tyler”, “Brook”]; let a = users[0]; let b = users[1]; let c = users[2]; console.log(a,b,c); // Sam Tyler Brook | cs |
ES6>>
1 2 3 4 5 6 7 8 9 10 | let users = [“Sam”, “Tyler”, “Brook”]; let [a, b, c] = users; console.log(a,b,c); // Sam Tyler Brook let [a, ,b] = users; console.log(a, b); // Sam Brook let[ first, …rest] = users; console.log(first, rest); // Sam [“Tyler”, “Brook”] | cs |
배열을 반환하는 함수일 경우 여러 변수를 한번에 할당할 수 있다.
code>>
1 2 3 4 5 6 7 8 9 10 | function activeUsers( ){ let users = [“Sam”, “Tyler”, “Brook”]; return users; } let active = activeUsers( ); console.log(active); // [“Sam”, “Tyler”, “Brook”] let [a, b, c] = activeUsers( ); console.log(a,b,c); // Sam Tyler Brook | cs |
for - of statement 도입
1 2 3 4 5 6 7 8 9 10 11 12 13 | let users = [“Sam”, “Tyler”, “Brook”]; //ES5> for(let index in users){ console.log( users[index]); } console> Sam Tyler Brook //ES6> for(let name of users){ console.log( name ); } console> Sam Tyler Brook | cs |
for - of statement를 배열 뿐만 아니라 객체에서도 사용하기 위해서 Symbol 이라는 새로운 데이터 타입이 도입되었다. Symbol.iterator라는 특별한 함수를 사용한다.
what is the Symbol?
심볼은 기존의 자바스크립트에서 존재하고 있던 어떠한 데이터타입과도 또 다른 하나이다. 일단 생성되면 그 값이 변경될 수 없고, 어떠한 속성을 부여할 수 없다. 하지만 이 심볼을 어떠한 속성의 이름으로는 사용할 수 있다. 각 심볼은 고유하며 다른 심볼과 구별된다.
var sym = Symbol( );
이렇게 심볼을 생성할 수 있다.
var cat = Symbol.for(“cat”);
이렇게 하면 cat이라는 이름의 symbol들이 불려진다. 심볼for 메소드는은 심볼 레지스트리라고 불리는 목록을 참조한다. 하나의 웹 페이지에서 하나의 심볼을 공유해야하는 경우에 사용된다.
code>>
1 2 3 4 5 6 | let users = [“Sam”, “Tyler”, “Brook”]; console.log(typeof names[Symbol.iterator]); // function for(let name of names){ console.log( name ); // Sam // Tyler // Brook } | cs |
Array. find ( _testfunc )
_testfunc를 만족하는 배열의 첫번째 원소를 반환하는 메소드이다.
code>
1 2 3 4 5 6 7 8 9 10 11 12 13 | let users = [ { login : “Sam”, admin : false }, { login : “Brook”, admin : true }, { login : “Tyler”, admin : true } ]; let admin = users.find ( (user) => { return user.admin; // returns first object for which user.admin is true }); console.log( admin ); // { “login”:”Brook”, “admin”:true } let admin = users.find(user => user.admin ); console.log ( admin ); // { “login”:”Brook”, “admin”:true } | cs |
chapter 4. end
'Dev.FrontEnd > JavaScript' 카테고리의 다른 글
[ES6] 6. Class sugar syntax and Template Strings (0) | 2016.09.06 |
---|---|
[ES6] 5. Collection - Map, Set (0) | 2016.09.06 |
[ES6] 3. Object shorthand, destructuring, assign (0) | 2016.09.06 |
[ES6] 0. Intro (0) | 2016.09.05 |
JavaScript 로 알아보는 클라이언트 사이드 렌더링 MVC 구조 (0) | 2016.08.19 |