본문 바로가기

Javascript

[자바스크립트 ES6+ 기본] 16. RegExp 오브젝트 lastIndex 정규 표현식 사용 형태 const value = "ABC"; const obj = new RegExp("A", "g"); log(obj.test(value)); const reg = /A/g; log(reg.test(value)); // true // true 매치 시작 위치를 lastIndex 프로퍼티에 설정 디폴트 값: 0 g 플래그를 사용하면 lastIndex 프로퍼티 위치부터 매치 const value = "ABABA", obj = /B/g const value = "ABABA", obj = /B/g; log(obj.test(value) + ": " + obj.lastIndex); log(obj.test(value) + ": " + obj.lastIndex); log(obj.te.. 더보기
[자바스크립트 ES6+ 기본] 15. Math 오브젝트 Math 오브젝트 ES5까지는 수학 계산 처리에 부족했으나 ES6에서 수학 계4산용 함수가 많이 추가됨 특히, 머신러닝/딥러닝에 대응할 수 있게 됨 일반적으로 수학 계산을 사용하지 않으므로 개요 중심으로 다룸 정수, 제곱근, 사인 Math.trunc() 소수를 제외한 정수 반환 log(Math.trunc(12.56), Math.floor(12.56)); log(Math.trunc(-12.56), Math.ceil(-12.56)); log(Math.trunc("45.67"), Math.trunc(true)); // Number 타입으로 변환하고 결과값으로 함수 실행 // 12, 12 // -12, -12 // 45, 1 Math.sign() 값의 부호에 해당하는 값 log(Math.sign(5), Math.. 더보기
[자바스크립트 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을 작성하면.. 더보기