개발 관련 책 읽기/모던 자바스크립트 Deep Dive(9)
-
모던 자바스크립트 Deep Dive - 9
✅ 아래 내용들에 대해서 알아보자 - 프로토타입 프로토타입 JS는 프로토타입 기반으로 상속을 구현하여 불필요한 중복을 제거한다. 다음 코드를 보자 아래 코드 실행 시 JS에서는 인스턴스 생성 시 동일한 메서드를 중복으로 생성하여 비효율적인 방식으로 생성한다. function Circle(radius) { this.radius = radius; this.getArea = function () { return Math.PI * this.radius ** 2; } } const circle1 = new Circle(1); const circle2 = new Circle(2); /** * Circle 생성자 함수는 인스턴스 생성할 때마다 동일한 동작하는 getArea 메서드를 중복 생성하고 모든 인스턴스가 중복..
2023.04.10 -
모던 자바스크립트 Deep Dive - 8
✅ 아래 내용들에 대해서 알아보자 - let 키워드 - const 키워드 - 객체 생성 - 일급 객체 let 1. 변수 중복 선언 금지 let 키워드는 이름이 같은 변수를 중복 선언하면 문법 에러가 발생하여 변수 중복을 방지해 준다. //1. let은 동일한 이름의 변수를 중복 선언하면 문법 에러를 발생시켜 변수 중복을 방지해준다. let foo=123; let foo=456; //SyntaxError: Identifier 'foo' has already been declared 2. 블록 레벨 스코프 let 키워드로 선언된 변수는 블록 레벨 스코프를 따른다. /** * var 키워드로 선언한 변수는 오로지 함수 코드 블록만 지역 스코프로 인정하였다. * 하지만 let 키워드로 선언한 변수는 모든 코드..
2023.03.31 -
모던 자바스크립트 Deep Dive - 7
✅ 아래 내용들에 대해서 알아보자 - 스코프 - 스코프 종류 - 전역 변수 - 전역 변수의 생명주기와 문제점 스코프 스코프(유효 범위)는 변수, 함수와 깊은 관련이 있으므로 주의 깊게 봐야 할 것 중 하나이다. var 키워드로 선언한 변수와 let/const 키워드로 선언한 변수의 스코프도 다르게 동작한다. 변수는 자신이 선언된 위치에 따라 유효 범위, 즉 다른 코드가 변수 자신을 참조할 수 있는 범위가 결정된다. 변수뿐 아니라 모든 식별자는 자신이 선언된 위치에 의해 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다. var var1=1; if(true){ var var2=2; //코드 블록 내 선언 변수 if(true){ var var3=3; //중첩된 코드 블록 내에서 선언한 변수 ..
2023.03.30 -
모던 자바스크립트 Deep Dive - 6
✅ 아래 내용들에 대해서 알아보자 - 함수 - 함수의 여러 가지 종류 - 정리 함수 함수는 JS에서 가장 중요한 핵심 개념으로 잘 이해하고 넘어가자. 쉽게 이야기하면 입력 -> 연산 -> 출력하는 일련의 과정을 말한다. 함수 선언문 방식 함수 선언문은 함수 이름 생략 불가 함수 선언문은 표현식이 아닌 문이다. 따라서 크롬 개발자 도구에서 undefined로 출력된다. function add(x,y){ return x + y; } function empty(){ return; //반환문 생략 시 undefined 반환 } console.log(empty()); //undefined JS에서는 생성된 함수를 호출하기 위해 함수 이름과 동일한 식별자를 암묵적으로 생성하고, 거기에 함수 객체를 할당한다. 즉, ..
2023.03.29 -
모던 자바스크립트 Deep Dive - 5
✅ 아래 내용들에 대해서 알아보자 - 객체란? - 프로퍼티 - 원시 값과 객체의 비교 - 변경 가능한 값 - 얕은 복사/깊은 복사 - 값에 의한 전달/참조에 의한 전달 객체 JS는 객체 기반의 프로그래밍 언어이며, 모든 것이 "객체"이다. 원시 값을 제외한 나머지 값은 모두 객체다. 원시 값은 변경 불가능한 값(Immutable)이지만 객체 타입의 값은 변경 가능한 값(Mutable)이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 key/value 구조로 구성된다. JS에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. JS 함수는 일급 객체 이므로 값으로 취급할 수 있다.(프로퍼티 값이 함수일 경우 일반 함수와 구분되게 메서드라고 부른다) 프로퍼티 : 객체의 상태를 나타내는 ..
2023.03.28 -
모던 자바스크립트 Deep Dive - 4
✅ 아래 내용들에 대해서 알아보자 - 블록문/조건문 - 반복문/break문 - 타입변환 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, JS는 블록문을 하나의 실행 단위로 취급한다. 블록문은 단독으로 사용할 수도 있으나 일반적으로 제어문이나 함수 정의할 때 사용 블록의 끝에는 세미콜론을 붙이지 않는다. //블록문 { var foo=10; } //제어문 var x=1; if(x 암묵적 타입 변환 { const num=2; if(num >0){ console.log("양수") } else{ console.log("음수") } } Switch/case 문 아래 코드를 보면 switch/case 문에는 default를 제외혹 break;를 넣어야 한다. 그렇지 않으면 값을 할당 후 s/c문을 탈출하지 ..
2023.03.24