본문 바로가기

javascript

[자바스크립트 ES6+ 기본] 14. Array 오브젝트 from() 첫 번째 파라미터의 오브젝트를 Array 오브젝트로 변환 const like = {0:"zero", 1:"one", length:2}; const list = Array.from(like); log(list); log(Array.from("ABC")); // [zero, one] // [A, B, C] function args(){ return Array.from(arguments); }; log(args(1, 2, 3)); // [1, 2, 3] // 축구 // 농구 const nodes = document.querySelectorAll(".sports"); const show = (node) => log(node.textContent); Array.from(nodes).forEach(sh.. 더보기
[자바스크립트 ES6+ 기본] 13. Template Literal Template Literal Syntax: `문자열` `문자열 ${표현식} 문자열` tag `문자열 ${표현식} 문자열` Template Literal 문자열 처리를 위한 리터럴 표현식을 포함할 수 있음 강좌에서는 템플릿으로 표기 backtick 안에 표현식 작성 표현식을 ${표현식} 형태로 작성 log(`ABC`); const one = 1, two = 2; const result = `1 + 2는 ${one + two}이 된다`; log(result); // ABC // 1 + 2는 3이 된다 tagged Template 템플릿에 함수 이름을 작성한 형태 const one = 1, two = 2; const show = (text, value) => { log(`${text[0]}${value}`).. 더보기
[자바스크립트 ES6+ 기본] 12. Object 오브젝트 is() 두 개의 파라미터 값과 값 타입을 비교 같으면 true, 아니면 false 반환 const result = Object.is(10, "10"); log(result); const one = {}, two = {}; log(Object.is(one, two)); // false // false 오브젝트 비교 목적이 아님 []와 [] 비교, {}와 {} 비교는 false JS 값 비교 방법 값과 타입까지 모두 비교: === 타입은 비교하지 않고 값만 비교: == log((undefined == null)); log((undefined === null)); log(Object.is(undefined, null)); // true // false // false Object.is()와 === 비교 차이.. 더보기
[자바스크립트 ES6+ 기본] 11.String 오브젝트 Unicode 유니코드는 U+0031 형태 코드 포인트(code point) 0031이 코드 포인트 문자 코드라고도 부름 코드 포인트로 문자/이모지 등을 표현 4자리 이상의 UTF-16 진수 형태 110만개 정도 표현 U+0000 ~ U+10FFFF plane(평면) 코드 포인트 전체를 17개 plane으로 나눔 하나의 plane은 65535(U+FFFF)개 첫 번째 plane BMP(Basic Multillingual Plane)라고 부름 일반적인 문자(영문자, 숫자)가 여기에 속함 한글의 코드 포인트도 여기에 속함 첫 번째 plane을 제외한 plane Supplementary plane, Astral plane이라고도 부름 5자리 이상의 코드 포인트를 표현할 수 있음 ES6+에서 지원 Escape .. 더보기
[자바스크립트 ES6+ 기본] 10. Number 오브젝트 IEEE 754 자바스크립트는 IEEE 754에 정의된 64비트 부동 소수점으로 수를 처리 double-precision floating-point format numbers 64비트로 최소값과 최대값을 처리 정수와 실수를 구분하지 않음 1을 1.0으로 처리 64비트 구성 1) 사인 비트 63: 1비트 값이 0이면 양수, 1이면 음수 2) 지수(exponent) 52~62 : 11비트 3) 가수(fraction) 0~51: 52비트 + 1(사인 비트): 53비트 Number 상수 safe integer란 지수(e)를 사용하지 않고 나타낼 수 있는 값 2의 64승이 아닌 2의 53승 Number.MAX_SAFE_INTEGER safe integer의 최대값 log(Number.MAX_SAFE_INTEGER.. 더보기
[자바스크립트 ES6+ 기본] 9. getter/setter getter getter로 선언된 함수를 자동으로 호출 값을 반환하는 시맨틱을 갖고 있으므로 getter 함수에서 값을 반환해야 함 ES5 형태 /* 1. book.title을 실행하면 title 프로퍼티에서 get 속성의 존재를 체크 2. 있으면, get() 함수를 호출하며 "책"이 반환되어 출력됨 3. book.title.get()처럼 함수로 호출하면 에러 발생 4. ES5의 Descriptor를 참조 */ var book = {}; Object.defineProperty(book, "title", { get: function(){ return "책"; } }); log(book.title); // 책 ES6 형태 /* 1. get getPoint(){}처럼 getPoint() 앞에 get을 작성하면.. 더보기
[자바스크립트 ES6+ 기본] 8. 연산자, 기타 Trailing commas Object 끝에 콤마 사용 } 앞에 콤마 사용 가능 배열 끝에 콤마 사용 ] 앞에 콤마 사용 가능 const obj = { book: 100, point: 200, }; const list = [100, 200,]; 거듭제곱 좌결합성 왼쪽에서 오른쪽으로 계산 1 + 2 + 3은 (1 + 2) + 3으로 계산 우결합성 오른쪽에서 왼쪽으로 계산 A B C에서 A (B C)로 계산 log(2 ** 3); log(3 ** 2); log(2 ** 3 ** 2); log(2 ** (3 ** 2)); log((2 ** 3) ** 2); // 8 // 9 // 512 // 512 // 64 try-catch try-catch의 catch(error)에서 catch처럼 (error) 생략 .. 더보기
[자바스크립트 ES6+ 기본] 7. for-of문 for-of Syntax: for (variable of iterable){ } 이터러블 오브젝트를 반복 const list = [1, 2, 3]; for (let k = 0; k < list.length; k++){ log(list[k]); }; for (let value of list){ log(value); }; // 1 // 2 // 3 // 1 // 2 // 3 iterable 이터러블 오브젝트를 작성 표현식을 작성하면 평가 결과를 사용 variable 변수 이름 작성 이터러블 오브젝트를 반복할 때마다 variable에 값이 할당됨 배열 배열을 반복하면서 엘리먼트를 하나씩 전개 for (let value of [1, 2, 3]){ log(value); }; // 1 // 2 // 3 String.. 더보기