JavaScript/모던 자바스크립트 Deep Dive

    [모던 자바스크립트 딥다이브] 17. 생성자 함수

    모던 자바스크립트 Deep Dive 17장 내용을 발췌, 요약한 글 입니다. 17.1 Object 생성자 함수 생성자 함수 : new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수. 인스턴스 : 생성자 함수에 의해 생성된 객체. 자바스크립트는 Object생성자 함수 이외에도 String, Number, Boolean, Function, Array, Date, RegExp, Promise등의 빌트인 생성자 함수 제공. 특별한 이유가 없는 이상 객체 리터럴을 사용하는게 더 간편하다. // 빈 객체 생성 const person = new Object(); // 프로퍼티, 메서드 추가 person.name = 'Park'; person.sayHello = function() { return `Hi, $..

    [모던 자바스크립트 딥다이브] 함수 선언문, 함수 표현식

    함수 리터럴 상수 (Constant): 변하지 않는 변수 (참조 변수 - 주소 값이 변하지 않는 것이다.) 리터럴 (Literal) : 변하지 않는 데이터 그 자체를 의미함. const a = 1; // a -> 상수 // 1 -> 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기 방식을 말한다. 즉, 리터럴은 값을 생성하기 위한 표기법이다. 따라서 함수 리터럴도 평가되어 값을 생성하며, 이 값은 객체다. 즉, 함수는 객체다. (값의 성질을 갖는 일급 객체에 해당한다.) 함수 정의 함수 정의 : 함수 호출 전, 인수를 전달 받을 매개변수와 실행할 문들, 그리고 리턴 값을 지정하는 것. 변수는 선언, 함수는 정의라고 하는데 이는 메모리 할당 여부에 따른 표현의 차이..

    [모던 자바스크립트 딥다이브] switch문, while문

    제어문 제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행 할 때 사용한다. 일반적인 코드는 위에서 아래로, 순차적으로 실행되는데 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다. 그렇기 때문에 코드의 흐름을 어렵게 만들어 가독성을 해칠 수 있다는 단점이 있다. switch문 switch문 : switch문은 주어진 표현식을 평가해 그 값과 일치하는 case문이 있다면 그에 해당하는 코드를 실행한다. 이 때 switch문의 표현식과 일치하는 case가 없다면, default로 이동해 그 코드를 실행한다. default는 옵션. if...else 문의 조건식은 불리언 값으로 평가되는데 (true or false) switch문의 표현식은 불리언 보다는 문자열 or 숫자값인 경우가 많다...

    [모던 자바스크립트 딥다이브] 4.변수

    변수를 선언하여 메모리에 값을 저장시키고, 변수의 이름 즉, 식별자는 메모리의 위치를 기억한다, 변수를 선언한 후 값을 할당하지 않은 경우, 메모리는 비어있는 것이 아니라 undefined 값이 할당되어 있다. Reference Error : 참조(메모리의 위치를 읽어오는 것) / 선언되지 않은 식별자를 참조했기 때문에 오류가 생기는 것. 변수 호이스팅 : 소스코디 실행 전, 소스코드의 평가 과정에서 자바스크립트 엔진은 변수 선언을 포함한 모든 선언문을 먼저 실행한다. 변수 선언문이 코드의 어디에 있든, 상단으로 끌어 올려진 것 처럼 동작하는 것을 '변수 호이스팅' 이라고 하며, 이는 JS 고유의 특징이다. 변수 선언은 메모리를 확보하고 undefined 값을 할당하는 것. 변수 선언은 런타임 이전에 실..