본문 바로가기

분류 전체보기157

JavaScript에서 == 와 === 차이점 ==와 ===는 비교를 통해 두 값의 동일성을 판단하는 데 사용됩니다. 두 연산자 모두 값이 같으면 true를, 그렇지 않으면 false를 반환합니다. ==와 ===는 동일성을 판단하는 기준이 달라 어느 연산을 사용할지 선택하는 것은 어떤 종류의 비교를 수행하려고 하는지에 달려있습니다. == 는 비교전 type coercion을 수행하기 때문에 느슨한 동등으로 불립니다. 이 말은, 비교하는 두 피연산자의 데이터 타입이 서로 다를 경우, JavaScript 엔진이 자동으로 한 피연산자의 타입을 다른 피연산자의 타입과 동일하게 변환하여 비교를 가능하게 한다는 의미입니다. 하나의 피연산자가 문자열일 경우: 다른 피연산자가 문자열로 변환됩니다.하나의 피연산자가 숫자일 경우: 다른 피연산자가 숫자로 변환됩니다.하.. 2024. 11. 7.
Strict Mode (엄격 모드) Strict mode는 JavaScript에 ECMAScript 5에서 도입된 기능으로, 더 엄격한 규칙을 적용하여 코드를 작성할 수 있게 합니다. 엄격 모드는 더 엄격한 구문 해석과 오류 처리를 적용하여 코드가 더욱 안전하게 실행되도록 합니다.엄격 모드에서는 선언되지 않은 변수 사용이 금지되며, 이 외에도 여러 규칙이 강제됩니다. 일반 JavaScript에서는 쓰기 불가능한 속성에 값을 할당하더라도 오류 메시지를 받지 않습니다.하지만 **엄격 모드(strict mode)**에서는 다음과 같은 경우 오류가 발생합니다:쓰기 불가능한 속성에 값 할당**읽기 전용 속성(getter-only property)**에 값 할당존재하지 않는 속성, 변수, 객체에 값 할당이러한 제한 덕분에 엄격 모드는 잘못된 할당을 .. 2024. 11. 7.
프로토타입 (Prototype) JavaScript에서 함수가 생성될 때 해당 함수에는 자동으로 prototype 속성이 추가되어, 이 함수로부터 생성된 객체들이 메서드와 속성을 공유할 수 있는 구조를 갖습니다. 이 프로토타입 객체는 메서드와 속성을 추가할 수 있는 공간을 제공하여, 해당 함수로 생성된 모든 객체에 상속을 쉽게 적용할 수 있습니다. 함수가 new 키워드로 호출되면, 생성자의 prototype 속성이 새로 생성된 객체의 프로토타입이 됩니다.상단 코드 확인해보면 :Car()라는 생성자 (Constructor) 함수를 정의했습니다.그 다음 프로토타입에 속성 "car.prototype.color = "Red"를 추가하여 속성에 값을 빨간 색으로 정의 했습니다. 이제 Car.prototype.color로 이 속성을 접근 할 수 .. 2024. 11. 6.
이벤트 루프 (Event Loop) JavaScript가 코드를 한 번에 한 줄씩, 순차적으로 실행한다는 의미입니다. 모든 JavaScript 코드는 메인 스레드에서 (싱글 스레드란 여러 작업을 병렬로 처리하지 않고, 순차적으로 처리하는 구조를 의미합니다) 실행되며, 한 번에 하나의 작업만 수행할 수 있습니다. 따라서 이 스레드에서는 여러 코드를 병렬로 동시에 실행할 수 있는 방법이 없습니다. 함수 실행 스택이 비워질 때마다 대기열(큐)에서 작업을 꺼내어 실행 스택에 배치하는 역할을 합니다. 이벤트 루프 작동 방식 :호출 스택(Call Stack):JavaScript는 현재 실행 중인 함수(프로그램이 실행되는 위치)를 추적하기 위해 호출 스택을 사용합니다. 각 함수 호출은 호출 스택에 추가되고, 완료되면 스택에서 제거됩니다.콜백 큐(Cal.. 2024. 10. 30.
콜 스택 (Call Stack)과 힙 (Heap) 할당(Allocation): 변수를 선언할 때 메모리가 할당됩니다. JavaScript에서는 이 과정이 자동으로 처리됩니다.사용(Using): 할당된 메모리를 사용하여 데이터를 저장하거나 읽어옵니다.해제(Releasing): 더 이상 사용하지 않는 메모리는 해제됩니다. JavaScript에서는 이 과정도 가비지 컬렉션(Garbage Collection)으로 자동 관리됩니다.여러 함수들(functions)을 호출하는 스크립트에서 해당 위치를 추적하는 인터프리터를 위한 메커니즘입니다. 현제 어떤 함수가 실행중인지, 그 함수 내에서 어떤 함수가 호출되어야 하는지, 등을 제어합니다. JavaScript 엔진은 단일 호출 스택만 가지고 있으므로 한 번에 하나의 작업만 수행할 수 있습니다. 스크립트를 실행하면 Ja.. 2024. 10. 30.
React Hooks에 대해 React Hooks는 react 버전 16.8에 도입 되었습니다. Hooks는 함수 컴포넌트에게 상태 (state) 기능에 접근할 수 있도록 해 주면서, 클래스 컴포넌트의 의존도가 많이 없어젔습니다. Hooks를 사용하면서 React 애플리케이션에서 상태 관리와 부수 효과를 보다 깔끔하고 간결하게 처리할 수 있습니다.  함수 컴포넌트에서만 Hooks 사용이 가능합니다Hooks 사용하려면 React에서 가져와야 (import) 합니다.Hook은 항상 컴포넌트의 최상위에서 호출해야 합니다.Hook은 조건문 안에서 호출해서는 안 됩니다.상태 훅 (State Hooks)컨텍스트 훅 (Context Hooks)레퍼언스 훅 (Ref Hooks)이펙트 훅 (Effect Hooks)성능 훅 (Performance H.. 2024. 10. 27.