개발30 호이스팅 변수 호이스팅https://www.youtube.com/watch?v=fETYLCU2YYc 결론 var 쓰지마. 함수 호이스팅https://www.youtube.com/watch?v=M3EVwPdtnqQ 개발 2024. 11. 6. js 상황에 따라 달라지는 this JavaScript에서 this 키워드는 함수가 호출되는 방식에 따라 다르게 동작합니다. 전역 공간에서의 this전역 컨텍스트에서 this는 전역 객체를 참조합니다. 브라우저 환경에서는 전역 객체가 window입니다.console.log(this); // 브라우저에서는 window 객체를 출력 함수에서의 this일반 함수에서 this는 호출 방식에 따라 다릅니다. 일반 함수 호출: this는 전역 객체를 참조합니다. (strict mode에서는 undefined)function showThis() { console.log(this);}showThis(); // 브라우저에서는 window 객체 (strict mode에서는 undefined) 메서드 호출: 객체의 메서드로 호출될 때, this.. 개발 2024. 11. 6. js outerEnvironmentReference 렉시컬 환경(lexical environment)은 JavaScript에서 변수와 함수의 스코프를 관리하는 구조입니다. 이는 코드가 작성된 위치에 따라 변수와 함수에 대한 접근을 결정하는 중요한 개념입니다. 환경 레코드 (Environment Record): 현재 실행 컨텍스트에서 정의된 변수와 함수에 대한 정보를 저장합니다. 이 레코드는 변수의 이름과 값, 함수의 정의 등을 포함합니다.outerEnvironmentReference: 현재 렉시컬 환경의 외부 환경을 참조합니다. 즉, 현재 스코프에서 접근할 수 없는 변수나 함수가 정의된 상위 스코프를 가리킵니다. 이를 통해 JavaScript는 스코프 체계를 유지하고, 중첩된 함수가 외부 함수의 변수에 접근할 수 있도록 합니다.렉시컬 환경은 함수가 정의된.. 개발 2024. 11. 6. js record와 호이스팅 JavaScript에서 "record"라는 용어는 일반적으로 사용되지 않지만, 객체를 의미하는 경우가 많습니다. JavaScript의 객체는 키-값 쌍으로 데이터를 저장하는 구조입니다. JavaScript에서 객체는 여러 값을 저장할 수 있는 데이터 구조입니다. 객체는 중괄호 {}로 정의되며, 속성(프로퍼티)과 메서드를 가질 수 있습니다. const person = { name: "Alice", age: 30, greet: function() { console.log("Hello, " + this.name); }};console.log(person.name); // "Alice"person.greet(); // "Hello, Alice" 호이스팅은 JavaScr.. 개발 2024. 11. 6. js 실행 컨텍스트 와 콜 스택 JavaScript의 실행 컨텍스트(Execution Context)와 콜 스택(Call Stack)은 JavaScript의 동작 방식을 이해하는 데 중요한 개념입니다. 실행 컨텍스트 (Execution Context)실행 컨텍스트는 JavaScript 코드가 실행되는 환경을 나타내는 객체입니다. 변수 객체 (Variable Object): 현재 실행 컨텍스트에서 사용 가능한 모든 변수와 함수 선언을 포함합니다. 이는 함수의 매개변수, 지역 변수, 그리고 함수 내에서 선언된 모든 변수들을 포함합니다.스코프 체인 (Scope Chain): 현재 컨텍스트에서 접근할 수 있는 변수의 범위를 결정합니다. 스코프 체인은 현재 실행 컨텍스트의 변수 객체와 외부 컨텍스트의 변수 객체를 연결하여, 변수에 접근할 수.. 개발 2024. 11. 6. js null 과 undefined let b = null;console.log(b); // nullnull과 undefined는 JavaScript에서 자주 사용되는 두 가지 특별한 값으로, 둘 다 "값이 없음"을 나타내지만 그 의미와 사용 방식에서 차이가 있습니다. undefined undefined는 변수가 선언되었지만 값이 할당되지 않은 상태를 나타냅니다. 즉, 변수가 존재하지만 그 값이 정의되지 않은 경우입니다. JavaScript에서 변수를 선언하고 초기화하지 않으면, 그 변수의 값은 자동으로 undefined로 설정됩니다. let a;console.log(a); // undefined 함수의 반환값: 함수가 명시적으로 값을 반환하지 않으면, 그 함수의 반환값은 undefined가 됩니다. function myFuncti.. 개발 2024. 11. 6. js 불변객체 JavaScript에서 불변 객체(Immutable Object)는 한 번 생성된 후 그 상태를 변경할 수 없는 객체를 의미합니다. 즉, 불변 객체의 속성이나 값을 수정할 수 없으며, 이러한 객체를 다룰 때는 새로운 객체를 생성하여 변경 사항을 반영합니다. 불변 객체의 주요 특징과 장점 상태 관리 용이: 불변 객체는 상태를 변경할 수 없기 때문에, 이전 상태를 쉽게 추적할 수 있습니다. 이는 특히 Redux와 같은 상태 관리 라이브러리에서 유용합니다.예측 가능성: 불변 객체는 상태가 변하지 않기 때문에, 함수형 프로그래밍의 원칙을 따르며, 코드의 예측 가능성을 높입니다.성능 최적화: 불변 객체는 참조 비교를 통해 변경 여부를 쉽게 판단할 수 있습니다. 이는 성능을 최적화하는 데 도움이 됩니다.안전성: .. 개발 2024. 11. 6. js 데이터 타입 과 메모리 관리 JavaScript는 다양한 데이터 타입을 지원하며, 각 데이터 타입은 메모리에서 다른 방식으로 처리됩니다. 데이터 타입의 종류JavaScript의 데이터 타입은 크게원시 타입(Primitive Types)과참조 타입(Reference Types)으로나눌 수 있습니다. 원시 타입 (Primitive Types) 불변! 원시 데이터(Primitive Data)는 더 이상 분해할 수 없는 기본적인 데이터 유형으로, 일반적으로 숫자, 문자, 불리언 값 등을 포함합니다. 원시 타입은 변경 불가능한 값(immutable value)을 가지며,새로운 값을 생성할 때마다 기존 값을 수정하는 것이 아니라 새로운 값을 만들어내는 특성을 가지고 있습니다.변경 불가능한 값은 한 번 생성된 후 그 값을 변경할 수 없는 데.. 개발 2024. 11. 5. js Set JavaScript의 Set 객체는 고유한 값의 집합을 저장하는 데이터 구조입니다. ES6에서 도입된 Set은 배열과 비슷하지만, 중복된 값을 허용하지 않으며, 순서를 유지합니다. Set의 특징고유한 값: Set은 중복된 값을 저장하지 않습니다.데이터 타입: Set은 원시값(문자열, 숫자 등)뿐만 아니라 객체, 배열 등 모든 데이터 타입을 저장할 수 있습니다.순서 유지: Set은 요소가 삽입된 순서를 유지합니다.동적 크기: Set의 크기는 동적으로 변하며, .size 속성을 통해 현재 저장된 요소의 개수를 쉽게 확인할 수 있습니다. Set 생성const mySet = new Set(); Set에 요소 추가add(value) 메서드를 사용하여 Set에 값을 추가할 수 있습니다.mySet.add(1);m.. 개발 2024. 11. 5. js Map console.log(myMap.size); // 3 출력avaScript의 Map 객체는 키-값 쌍을 저장하는 컬렉션으로 ES6에서 도입되었습니다. 일반적인 객체와는 달리 Map은 키로서 객체를 포함하여 다양한 데이터 타입을 사용할 수 있으며 삽입 순서를 유지합니다. Map의 특징키의 타입: Map의 키는 원시값(문자열, 숫자 등)뿐만 아니라 객체, 함수 등 모든 데이터 타입을 사용할 수 있습니다.순서 유지: Map은 요소가 삽입된 순서를 유지합니다. 따라서 반복할 때, 삽입한 순서대로 요소를 얻을 수 있습니다.크기 확인: Map은 .size 속성을 통해 요소의 개수를 쉽게 확인할 수 있습니다. Map 생성const myMap = new Map(); Map에 요소 추가set(key, value).. 개발 2024. 11. 5. js 일급 객체로서의 함수 JavaScript에서 함수는 일급 객체(First-Class Object)로 취급됩니다. 이는 함수가 다른 객체와 동일한 방식으로 다루어질 수 있음을 의미합니다. 일급 객체의 특성 변수에 할당 가능: 함수를 변수에 할당할 수 있습니다. const greet = function() { console.log("안녕하세요!");}; 함수의 인수로 전달 가능: 함수를 다른 함수의 인수로 전달할 수 있습니다.function executeFunction(fn) { fn(); // 전달받은 함수를 실행}executeFunction(greet); // "안녕하세요!" 출력 함수의 반환값으로 사용 가능: 함수를 다른 함수에서 반환할 수 있습니다.function createGreeter(greeting.. 개발 2024. 11. 5. js ES6 ES6 (ECMAScript 2015)는 JavaScript의 주요 업데이트로, 많은 새로운 기능과 문법을 도입하였습니다. 변수 선언: let과 constlet: 블록 스코프를 가지며, 변수의 값을 변경할 수 있습니다.const: 블록 스코프를 가지며, 선언 시 초기화가 필요하고 값을 변경할 수 없습니다. let variable = "변경 가능";const constant = "변경 불가능";// variable = "변경됨"; // 가능// constant = "변경됨"; // 오류 발생 템플릿 리터럴 (Template Literals)백틱(`)을 사용하여 여러 줄 문자열과 문자열 내 변수 삽입을 쉽게 할 수 있습니다.const name = "홍길동";const greeting = `안녕하세요, $.. 개발 2024. 11. 5. 이전 1 2 3 다음 💲 추천 글