목록What I Learned (116)
우당탕탕 개발일기
'구조 분해 할당'이라고도 하는 디스트럭처링 할당은 ES6에서 도입된 JavaScript 문법으로, 구조화된 배열과 같은 이터러블 또는 객체를 destructuring(비구조화, 구조 파괴)하여 1개 이상의 변수에 개별적으로 할당하는 것을 말한다. 이는 배열이나 객체의 값을 쉽게 추출하여 변수에 할당할 수 있게 하여 코드의 가독성을 높이고, 더 간결하게 작성할 수 있게 도와준다. 1. 배열 디스트럭처링 할당배열의 요소를 변수에 할당하고자 할 때 사용한다.배열 디스트럭처링 할당 대상(우측)은 이터러블이어야 하며, 형태는 배열 리터럴이어야 한다.배열 디스트럭처링 할당 기준은 배열의 인덱스 즉, 배열 내 요소의 순서대로이다.// 배열 리터럴로 생성된 배열을 arr에 할당const arr = [1, 2, 3, ..
심벌Symbol은 ES6부터 도입된 7번째 데이터 타입이다. 변경 불가능한 원시 타입의 값이며 다른 값과 중복되지 않는 유일무이한 값이다.따라서 이름 충돌 위험이 없는 프로퍼티 키를 만들기 위해 사용된다. 심벌 값의 생성1. Symbol 함수심벌 값은 Symbol 함수를 호출하여 생성한다.다른 원시값은 리터럴 표기법을 통해 값을 생성할 수 있지만 심벌 값은 Symbol 함수를 호출하여 생성해야 한다. Symbol 함수는 new 연산자와 함께 호출하지 않는다.(=Constructor X =인스턴스 생성 X)이 때 Symbol 함수를 통해 생성된 심벌 값은 외부로 노출되지 않아 확인 할 수 없으며, 다른 값과 절대 중복되지 않는다.심벌 값도 다른 데이터 타입처럼 객체처럼 접근하면 암묵적으로 래퍼 객체를 생성..
표준 빌트인 객체인 String은 원시 타입인 문자열을 다룰 때 유용한 프로퍼티와 메소드를 제공한다.또한 생성자 함수 객체이다. 따라서 new 연산자와 함께 호출하여 String 인스턴스를 생성할 수 있다. length 프로퍼티length 프로퍼티는 문자열의 문자 개수를 반환한다.앞에서 배웠듯 string 래퍼 객체는 유사 배열 객체이므로, 인덱스를 나타내는 숫자를 프로퍼티 키로, 각 문자를 프로퍼티 값으로 갖는다. String 메소드배열에는 원본 배열을 직접 변경하는 메소드와 새로운 배열을 생성하여 반환하는 메소드가 있다.하지만 String 객체에는 유사배열객체일지라도 원본 String 래퍼 객체를 직접 변경하는 메소드는 존재하지 않고,늘 새로운 문자열을 반환한다. 문자열은 변경 불가능한 원시 값이므..
표준 빌트인 객체인 Date는 날짜와 시간을 위한 메소드를 제공하는 빌트인 객체이며 생성자 함수이다.'현재 날짜와 시간'이라 함은 자바스크립트 코드가 실행된 시스템의 시계에 의해 결정된다.따라서 한국은 KST(한국표준시, UTC+9시간)으로 표시된다. 1. Date 생성자 함수Date는 생성자 함수이다.생성자 함수 Date로 생성한 Date 객체는 내부적으로 날짜와 시간을 나타내는 정수값을 갖는다.이 정수값은 1970년 1월 1일 00:00:00(UTC)을 기점으로 Date 객체가 나타내는 날짜와 시간까지의 밀리초이며, 이를 타임스탬프라고 한다. 즉, 생성자 함수 Date로 생성한 Date 객체는 내부적으로 타임스탬프를 반환한다고 할 수 있다. 1) new Date()Date 생성자 함수를 인수 없이 ..
ES6 이전의 함수는 일반 함수로도 호출할 수 있고, 생성자 함수로서 호출할 수도 있고, 메소드로 호출할 수도 있었다.다시 말해 ES6 이전의 모든 함수는 callable이면서 constructor이다. 즉, 사용 목적을 구분하지 않고 사용되었다.하지만 이는 실수를 유발할 수 있고 성능면에서도 손해이다. 따라서 ES6부터는 함수를 사용 목적에 따라 1.일반함수 2.메소드 3.화살표함수 세 가지 종류로 구분하기 시작했다.일반 함수는 함수 선언문이나 함수 표현식으로 정의한 함수를 말하며, 이는 ES6 이전과 차이가 없다.하지만 메소드와 화살표 함수는 ES6 이전과 명확한 차이가 있어서 비교하여 살펴 볼 필요가 있다.ES6 함수의 구분constructorprototypesuperarguments일반 함수OOX..