728x90
반응형

Study/JavaScript 14

[JavaScript] 스코프(Scope)란?

스코프(Scope)는 '범위'라는 의미를 가집니다. JavaScript에서도 역시 '범위'라는 의미를 가지고 있습니다. JavaScript에서 스코프는 2가지 타입이 존재합니다. Global Scope (전역 스코프) - 어느 곳이든지 접근할 수 있다는 의미입니다. Local Scope (지역 스코프) - 해당 지역에서만 접근할 수 있다는 의미입니다. JavaScript에서는 함수를 선언하면 새로운 스코프를 생성합니다. 해당 함수 안에서 선언한 변수는 해당 함수 안에서만 접근이 가능합니다. 이것을 function-scope (함수 스코프)라고 합니다. var a = 'apple';// 전역 스코프, 전역 변수 function test() {// 지역 스코프 var a = 'banana';// 지역 변수 ..

Study/JavaScript 2022.04.09

[JavaScript] var, const, let 키워드 차이점

var, let, const 키워드의 차이점 var 유효 범위 : 블록스코프 / 함수 스코프 값 재할당 : X 재선언 : X 호이스팅: O const 유효 범위 : 함수 스코프 값 재할당 : O 재선언 : O 호이스팅: X let 유효 범위 : 블록 스코프 / 함수 스코프 값 재할당 : O 재선언 : X 호이스팅: X [변수 재선언] var a = 'a' console.log(a) // a var b = 'b' console.log(b) // b a라는 변수를 한 번 더 선언했습니다. 하지만 에러가 나오지 않고 각각 다른 값이 출력되고 있습니다. 에러가 나지 않아 편리하고 빠르게 코딩을 이어나갈 수 있지만 코드량이 방대하다면 a라는 변수가 어디에서 어떤 의미를 가지고 사용되기 파악하기 힘들고 값이 바뀔 ..

Study/JavaScript 2022.04.05

이벤트 루프(Event Loop)란?

자바스크립트 엔진은 Memory Heap과 Call Stack으로 구성되어 있습니다. 자바스크립트는 싱글 스레드 기반 언어여서 한 번에 하나의 작업을 처리합니다. 이말은 즉 Call Stack이 하나라는 뜻 입니다. Call Stack에서 실행된 비동기 함수는 Web API를 호출하며, Web API는 콜백함수를 Callback Queue에 넣어줍니다. Memory Heap은 프로그래밍을 할 때 선언된 변수나 함수 등이 담겨 메모리 할당이 일어나는 곳 입니다. Call Stack은 코드가 실행될 때 보관되는 영역입니다.(Stack LIFO(Last In First Out) 선입후출 구조) Callback, Task Queue 는 비동기로 실행된 콜백 함수가 보관되는 영역입니다.(Queue FIFO(Fir..

Study/JavaScript 2022.01.24

얕은 복사(shallow copy) vs 깊은 복사(deep copy)

얕은 복사(shallow copy) 얕은 복사는 주소값을 복사하는 것을 의미합니다. const obj1 = { a: 10, b: 20}; const obj2 = obj1; obj2.a = 30; console.log(obj1 === obj2); // true console.log(obj1.a); // 30 obj1 객체를 obj2라는 새로운 객체에 할당했습니다. 이를 참조 할당이라고 합니다. 두 객체를 비교하면 true가 출력됩니다. 결국 데이터가 해당하는 데이터의 주소(참조)값을 전달해주어 데이터를 공유하는 것을 의미합니다. 깊은 복사(deep copy) 깊은 복사는 값 자체를 복사하는 것을 의미합니다. let a = 10; let b = a; b = 20; console.log(a); // 10 co..

Study/JavaScript 2021.12.19
728x90
반응형