간단한 정리
·
Javascript
1. M/D/YYYY -> YYYYMMDD - 월/일 1자리 숫자가올때 '0' 붙여서 처리하기 2. try catch - 함수 처리할때 catch(err)부분은 조건문에 throw 처리하기 3. 태그 삭제 구현 ? parentNode, removeChild, addEventListener 4. 특정 태그에 스타일 추가 -
[Javascript] 실행 컨텍스트
·
Javascript
실행 컨텍스트(Execution Context / EC) - 실행 코드에 제공할 정보들을 모아 놓은 객체 - 자세히 설명하자면 코드를 실행하기 위해서는 여러가지 정보를 알고 있어야 한다. 변수 : 전역변수, 지역변수, 매개변수, 객체 프로퍼티 함수 변수의 유효범위(Scope) this - 위와 같은 정보들을 형상화하고 구분하기 위해 실행 컨텍스트를 객체의 형태로 관리한다. - 전역 코드로 컨트롤이 진입하면 가장 먼저 전역 실행 컨텍스트가 생성되고 애플리케이션이 종료될 때 까지 유지된다. 실행 컨텍스트의 3가지 객체 1. Variable Object(VO / 변수객체) - Variable Object는 실행 컨텍스트의 프로퍼티이기 때문에 값을 갖는데 이 값은 다른 객체를 가리킨다. - Variable Ob..
[Javascript] this
·
Javascript
this 바인딩 vs 렉시컬 스코프 - this : 함수를 호출할 때 함수가 어떻게 호출 되었는지에 따라 this에 바인딩할 객체가 동적으로 결정됌 - 렉시컬 스코프 : 함수를 어디에 선언하였는지에 따라 상위 스코프가 결정된다. this 호출 방식 - 함수 호출 - 메소드 호출 - 생성자 함수 호출 - apply, call, bind 호출 function test() { console.dir(this) } // 1. 함수 호출 test(); // window // 2. 메소드 호출 var obj = {test:test}; obj.test(); // obj // 3. 생성자 함수 호출 var instance = new test(); // instance // 4. apply, call, bind 호출 va..
[Javascript] 스코프(Scope)
·
Javascript
스코프(Scope) - 변수에 접근할 수 있는 범위 스코프 종류 전역 스코프(Global scope) - 코드 어디에서든 참조 가능 지역 스코프(Local scope) - 함수 코드 블록 안에서 만든 스코프로 함수 자신과 자식 함수에서만 참조 가능 var global = '전역 스코프'; function test() { var local = "지역 스코프"; console.log(`${local} 호출`) } console.log(`${global} 호출`); // (1) 전역 스코프 호출 console.log(`${local} 호출`) // (2) local is not defined test() // (3) 지역 스코프 호출 // 지역 스코프는 함수 내부에서 접근 가능하다 // (2)과 같이 지역 스..
[Javascript] 프로토타입(Prototype)
·
Javascript
- 자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있다 - 이것은 마치 객체 지향의 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있게 한다 - 부모 객체를 Prototype(프로토타입) 객체 또는 줄여서 Prototype(프로토타입)이라 한다.
[Javascript] 호이스팅
·
Javascript
호이스팅 - var 선언문, function 선언문 등 모든 선언문이 해당 Scope의 선두로 옮겨진 것처럼 동작하는 특성 - 변수 선언 단계와 초기화 단계가 할당 단계와 분리되어 진행되기 대문에 호이스팅이 발생한다. 변수 호이스팅 - var 키워드 변수 생성과정 - 1. 선언 단계 : 변수 객체에 var 키워드로 선언된 변수를 등록한다. 이 변수 객체는 스코프 참조 대상이 된다. 2. 초기화 단계 : 변수 객체에 등록된 var 키워드 변수를 메모리에 할당한다. var 키워드 변수값은 undefined로 초기화 된다. 3. 할당 단계 : 초기화 단계에서 undefined로 초기화된 값을 실제값으로 할당한다. var 키워드 변수 호이스팅 예제 // var 키워드로 선언된 변수는 선언 단계와 초기화 단계가 ..
[Javascript] 함수(function)
·
Javascript
함수 선언문 // 함수 선언문 function sum(num) { console.log(num + num) // 4 return num + num } sum(2) 함수 표현식 - 자바스크립트 함수의 특성(일급객체)을 이용해 변수에 할당할 수 있다. - 변수에 할당할 수 있기 때문에 함수명을 생략할 수 있는데 이것을 익명 함수라고 한다.(보통 함수 표현식에서는 함수명을 생략함) // 함수 표현식 var sum = function (num) { console.log(num + num) // 4 return num + num } sum(2) (1) 변수에 함수를 할당하고 변수명으로 호출하는 것이 아닌 함수명을 사용해 호출하게 되면 에러가 발생한다. (함수 표현식에서 사용한 함수명은 외부 코드에서 접근 불가능하..
[Javascript] 객체와 변경불가성(Immutability)
·
Javascript
변경 불가능한 값(immutable value) vs 변경 가능한 값(mutable value) - 원시 타입은 변경 불가능한 값이다. - 객체 타입은 변경 가능한 값이다. 원시 타입 - 원시 타입은 값을 변경 할 수 없다. 하지만 재할당은 가능하다.(값이 변경되는것처럼 느껴지지만 변수가 가리키는 메모리 주소가 변경되는것이다.) - string, number, bigint, boolean, undefined 등이 있다. var str = 'hello'; str[0] = 's'; // Cannot assign to read only property '0' of string 'hello' str = 'world'; // O 재할당 가능 참조 타입 - 참조 타입은 값을 변경 할 수 있다. var me = { ..