객체를 생성하는 방법은 여러가지가 있습니다. 그 중 생성자 함수를 이용하여 객체를 생성하는 방법에 대해 알아볼 것입니다.생성자 함수(constructor)란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말합니다.JavaScript는 Object, S
JavaScript는 아래와 같이 다양한 객체 생성 방법을 지원합니다.객체 리터럴Object 생성자 함수생성자 함수Object.create 메서드클래스 (ES6 도입)프로퍼티 키로는 빈 문자열을 포함하는 모든 문자열 or 심벌 값이 가능하지만 일반적으로 문자열을 사용합
String 생성자 함수를 new 연산자 없이 호출Object.prototype.toString 메서드 이용문자열 연결 연산자를 이용 (암묵적 타입 변환)Number 생성자 함수를 new 연산자 없이 호출parseInt, parseFloat 함수 사용(문자열만 가능)\
본 게시글에선 기본적인 연산자에 대한 설명은 생략하고 주의하거나 헷갈릴만한 것들에 대해서만 안내하고 있습니다.break문을 사용하지 않으면 이후 case문과 default문을 모두 실행하는 폴스루(fall through)가 나타나 의도대로 실행되지 않을 수 있다.때론
본 게시글에선 기본적인 연산자에 대한 설명은 생략하고 주의하거나 헷갈릴만한 것들에 대해서만 안내하고 있습니다.연산이 불가능한 경우 NaN를 반환합니다.단항(unary) 상술 연산자의 경우 피연산자(operand)의 값을 변경하는 부수 효과(side effect)가 있는
ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식, 즉 모든 수를 실수로 처리합니다.추가적으로 아래 3가지의 값도 표현할 수 있습니다.이때 Javascript는 대소문자를 구문하기 때문에 NaN(Not-a-Number)의 대소문자가
언매니지드 언어 (unmanaged language) 언매니지드 언어는 개발자가 주도적으로 메모리를 할당하고 해제하기 위해 malloc()이나 free()와 같은 메모리 제어 기능을 제공합니다. 덕분에 개발자의 역량에 따라 최적의 성능을 확보할 수 있지만 반대로 치명적
리터럴 (literal) 사람이 이해할 수 있는 문자 or 약속된 기호를 사용해 값을 생성하는 표기법(notation)을 말합니다. JavaScript Engine은 코드가 실행되는 시점(runtime)에 리터럴을 평가해 값을 생성합니다. 정수 리터럴, 부동소수점 리
프로그래밍이란 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업이며, 그 결과물이 바로 코드입니다. 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라봐야 하는데 이때 필요한 것이 컴퓨팅 사고(Computatio
var ES5까지는 변수를 선언할 수 있는 유일한 방법이 var 키워드를 사용하는 것이었습니다. 해당 변수들은 다음과 같은 특징들이 있으며 다른 언어와는 구별되는 독특한 특징입니다. 01. 중복 선언 초기화문(변수 선언과 동시에 초기값을 할당하는 문)이 있는 변수
객체 프로퍼티에선 해당 속성을 알려주는 설명자(descriptor)라는 것이 존재합니다. 이는 프로퍼티가 데이터 프로퍼티 인가 접근자 프로퍼티 인가에 따라 설명자 구성에 차이가 있기에 두 경우로 나눠서 게시글을 작성하도록 하겠습니다. 해당 게시글에선 데이터 프로퍼티의
foo 함수 내의 y는 선언하지 않은 식별자입니다. 따라서 y = 20;이 실행되면 참조 에러가 발생할 것처럼 보이지만 문제없이 잘 동작합니다. 이는 선언하지 않은 식별자에 값을 할당하면 전역 객체의 프로퍼티기 되기 때문입니다.foo 함수가 호출되면 Javascript
Javascript는 프로토타입 기반 언어이기 때문에 "상속"이라는 개념이 존재하지 않지만 사용자의 니즈에 따라 결국 ES6에는 클래스 문법이 추가되었습니다. 다만 ES6의 클래스에서도 프로토타입을 활용하고 있기에 ES5 체제 하에서 클래스를 흉내내기 위한 구현 방식을
프로토타입(prototype) 기반 언어에선 클래스를 기반으로 하여 '상속'을 사용하는 클래스 기반 언어와는 달리 프로토타입 기반 언어에서는 객체를 원형(prototype)으로 삼고 이를 복제(참조)한으로써 상속과 비슷한 효과를 얻습니다. Constructor를 ne
클로저란? 클로저(closure)는 함수형 프로그래밍 언어에서 등장하는 보편적인 특성이기에 다양한 문헌에서 제각각 클로저를 다르게 설명하고 있습니다. 본질을 깨닫고 나면 쉬운 개념인데도 어딘가 갈증이 해소되지 않는 기분을 느끼기도 쉬운 개념이 바로 클로저입니다. 예시
한 줄 요약 눈에 보이는 것이 다가 아니다. 실행 컨텍스트 (execution context) 실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아놓은 객체입니다.
콜백 함수(callback function)란 다른 코드의 인자로 자신이 넘어가 적절한 시점에 실행이 되어지는 함수입니다.우선 setInterval의 구조를 살펴보면func으로 넘겨준 함수는 매 delay(ms)마다 실행되며, 그 결과 어떠한 값도 반환하지 않습니다.
한 줄 요약 비어있음을 알리기 위해선 null을 사용하고 undefined 사용은 지양하자. undefined undefined가 나오는 상황은 크게 2가지가 있습니다. 사용자가 명시적으로 undefined를 지정할 경우 값이 존재하지 않을 때 Javscript En
얕은 복사와 깊은 복사 우선 코드부터 확인해보겠습니다. 한 단계 더 들어간 urls의 내부 프로퍼티들은 기존 데이터를 그대로 참조하는 현상이 발생합니다. 이와 같이 바로 아래 단계의 값만 복사하는 것을 얕은 복사(shallow copy)라고 합니다. 이