자바스크립트
-
자바스크립트 생성자함수, 인스턴스, 함수와 일급객체, 프로퍼티Javascript/모던자바스크립트 Deep Dive 2023. 1. 5. 13:03
p.234 생성자 함수에 의한 객체 생성 : new 연산자로 생성된 객체를 인스턴스 라고 한다. Object 생성자 함수 // 객체리터럴 방식 var obj = {}; // Object 객체 생성자 함수 방식 const newPerson = new Object(); newPerson.name = "woony" newPerson.age = 26 newPerson.sayHello = function () { console.log(`Hi, I'm ${this.name} ${this.age}.`) } newPerson.sayHello() // Hi, I'm woony 26. 📌 new String 과 문자 리터럴(일반선언)은 뭐가 다를까? //이외에도 String Number Boolean Function Ar..
-
자바스크립트 변수의 생명주기, 모듈패턴, var const let 차이Javascript/모던자바스크립트 Deep Dive 2023. 1. 2. 01:26
p.200 변수의 생명주기 전역 변수를 반드시 사용해야 할 이유를 찾지 못한다면 지역 변수를 사용해야 한다. 4.4 "변수 선언의 실행 시점과 변수 호이스팅"에서 살펴보았듯이 변수 선언은 선언문이 어디에 있든 상관없이 가장 먼저 실행된다. 그러나 엄밀히 말하자면 위 설명은 전역 변수에 한정된 것이다. 함수 내부에서 선언한 변수는 함수가 호출된 직후에 함수 몸체의 코드가 한 줄씩 순차적으로 실행되기 이전에 자바스크립트 엔진에 의해 먼저 실행된다. var foo = function () { //변수 x의 생명주기 1.변수 x 생성 var x = 'local'; // 2. 변수 x에 값 할당 console.log(x); return x; // 3. 변수 x 소멸 } Quiz.? var x = 'global';..
-
자바스크립트 스코프, 스코프체인, 함수레벨스코프Javascript/모던자바스크립트 Deep Dive 2023. 1. 1. 15:47
p.189 스코프 : 식별자가 유효한 범위를 말한다. (식별자를 검색하는 규칙) var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. function foo() { var x = 1; var x = 2; console.log(x) //2 } foo(); let 이나 const 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용되지 않는다. function bar() { let x = 1; let x = 2; //SyntaxError: Indentifier 'x' has already been declared } bar(); 스코프의 종류 구분 설명 스코프 변수 전역 코드의 가장 바깥 영역 전역 스코프 전역 변수 지역 함수 몸체 내부 지역 스코프 지역 변수 전역변수는 어디서든지..
-
자바스크립트 원시 값과 객체, 얕은vs깊은 복사, 함수(재귀, 콜백)Javascript/모던자바스크립트 Deep Dive 2022. 12. 31. 00:39
p.137 원시 값과 객체의 비교 원시타입의 값은 변경 불가능한 값이다. (읽기전용 값으로 변경 불가능) 변수는 언제든지 재할당을 통해 변수 값을 변경 할 수 있다. 상수는 재할당이 금지된 변수를 말한다. 상수도 값을 저장하기 위한 메모리 공간이 필요하므로 변수라고 할 수 있다. 단, 변수는 언제든지 재할당을 통해 변수 값을 변경할 수 있지만 ex) var, let 상수는 단 한번만 할당이 허용되므로 변수 값을 변경 할 수 없다. ex) const 변수에 새로운 원시 값을 재할당하면 메모리 공간에 저장되어 있는 재할당 이전의 원시 값을 변경하는 것이 아니라 새로운 메모리 공간을 확보하고 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킨다. 이때 변수가 참조하던 메모리 공간의 주소가..