자바스크립트11 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. IIFE (Immediately Invoked Function Expression) 즉시 실행 함수 표현 (IFFE)은 정의되자마자 즉시 실행 되는 함수입니다. 이들은 변수에 대한 로컬 스코프를 생성하여 전역 (Global) 스코프를 오염시키는 것을 방지하는 데 주로 사용됩니다. 즉시 실행 : IIFE 함수는 즉시 실행되어, 별도의 함수 호출 없이 함수 내의 코드가 실행되도록 보장합니다.캡슐화 : IIFE는 변수에 대한 개인적인 스코프를 생성하여 전역 스코프를 오염시키는 것을 방지하고, 코드의 다른 부분과의 충돌을 피할 수 있습니다.익명 또는 명명 가능 : IIFE는 익명 함수(이름 없이) 또는 명명된 함수(이름이 있는)로 정의할 수 있습니다. 익명 IIFE가 더 일반적이지만, 명명된 IIFE는 디버깅 시 유용할 수 있습니다.익명 IIFE는 message 변수를 캡슐화하여, 전역 스코.. 2024. 10. 1. JavaScript에서 'this' 'this' 키워드는 항상 객체를 참조합니다. 그러나 'this'가 참조하는 객체는 this가 호출되는 방식과 위치에 따라 달라질 수 있습니다. **this는 변수가 아닌 키워드입니다. this의 값을 변경할 수 없습니다** 자바스크립트에서 객체 메서드의 문맥에서는 this 키워드가 객체 자체를 가리키며, 메서드의 범위 내에서 해당 객체의 속성 및 메서드에 접근할 수 있게 해 줍니다. 단독으로 사용될 때, this는 전역 객체를 가리킵니다.** 브라우저 환경에서는 window 객체를 가리키고, Node.js 환경에서는 global 객체를 가리킵니다 ** 함수 내부에서 사용될 때, this는 일반적으로 전역 객체를 가리킵니다. 엄격 모드(strict mode)에서 함수 내에서 this는 undefined가.. 2024. 9. 24. JavaScript에서 클로저 (Closure) 이란? 클로저는 함수와 그 주변 상태(렉시컬 환경)에 대한 참조가 함께 묶인 조합입니다. 클로저를 생성하면 내부 함수에서 외부 함수의 스코프에 접근할 수 있습니다. 렉시컬 스코핑은 (lexical scope) 함수가 중첩될 때 파서가 변수 이름을 어떻게 해결하는지를 의미합니다. 소스 코드 내에서 변수가 선언된 위치가 그 변수가 사용할 수 있는 범위를 결정합니다. 중첩된 함수는 외부 스코프에서 선언된 변수에 접근할 수 있습니다. 클로저는 내부 함수가 외부 함수가 실행을 마친 후에도 외부 함수의 변수와 매개변수에 접근할 수 있을 때 형성됩니다. 이는 내부 함수가 자신이 생성된 렉시컬 환경에 대한 참조를 유지하기 때문에 가능합니다. 숫자를 세는 카운터 함수를 작성해 보겠습니다 상단에서 add() 함수를 3번 불렀지만.. 2024. 9. 23. 이전 1 2 다음