전역 객체란전역 객체는 자바스크립트 환경에서 어디서든 접근할 수 있는 내장 객체로, 전역에서 사용 가능한 변수와 함수들을 담고 있습니다.브라우저 환경: 전역 객체는 window로 불리며, window.document, window.setTimeout() 등으로 접근할 수 있습니다.Node.js 환경: 전역 객체는 global로 불리며, global.process, global.setImmediate() 등을 제공합니다.브라우저와 Node.js에서의 전역 객체 사용// 브라우저 환경에서의 전역 객체// 전역 함수 호출 (window 객체의 메서드)window.alert("안녕하세요!");// window를 생략해도 동일하게 동작합니다.alert("안녕하세요!");// Node.js 환경에서의 전역 객체//..
var 스코프var로 선언된 변수는 함수 스코프(function scope)를 가집니다. 이는 변수가 선언된 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없습니다. 하지만 블록 스코프(block scope)를 지원하지 않기 때문에, { ... }로 감싸진 블록 내부에서 선언된 변수도 함수 전체에서 접근 가능합니다.var 스코프 예제function example() { if (true) { var message = "블록 내부에서 선언됨"; } console.log(message); // 출력: "블록 내부에서 선언됨"}example();// 함수 내부이므로 message 변수에 접근 가능위 예제에서 if 블록 내에서 var로 선언된 message 변수는 블록을 벗어나도 함수 내부에서 접..
변수의 유효범위와 렉시컬 환경자바스크립트에서 변수의 유효 범위(Scope)는 해당 변수가 어디서부터 어디까지 유효하게 사용될 수 있는지를 결정합니다. 특히, let과 const 키워드를 사용하면 블록 스코프(block scope)를 갖는 변수를 선언할 수 있습니다. 즉, 함수나 조건문, 반복문 등 { ... } 안에서 선언한 변수는 해당 블록 외부에서는 접근할 수 없습니다.{ let message = "안녕하세요!"; console.log(message); // 출력: 안녕하세요!}console.log(typeof message); // 출력: undefined (message 변수는 블록 밖에서 접근 불가)자바스크립트의 렉시컬 환경(Lexical Environment)은 코드가 작성된 구조를 기반으..
나머지 매개변수(rest parameters)나머지 매개변수는 함수 정의 시 매개변수 목록에서 ...을 사용하여, 함수가 호출될 때 전달된 나머지 인수들을 배열로 수집합니다. 이 방식은 인수의 개수가 정해지지 않은 함수나, 일부 인수만 따로 처리하고 나머지를 배열로 다룰 때 유용하게 활용할 수 있습니다.모든 인수의 평균 계산 예제function calculateAverage(...numbers) { const total = numbers.reduce((sum, num) => sum + num, 0); return numbers.length === 0 ? 0 : total / numbers.length;}console.log(calculateAverage(10, 20, 30)); // 출력:..
재귀의 기본 개념재귀는 함수가 자기 자신을 호출하여 문제를 더 작은 동일 문제로 분할하고 해결하는 프로그래밍 기법입니다. 문제를 분할하기 때문에 복잡한 문제를 단순화하여 해결할 수 있게 해줍니다.베이스 케이스 : 재귀 호출을 멈추는 단계로 더이상 분할이 필요하지 않습니다. 예) factorial(1) = 1재귀 단계 : 문제를 더 작은 부분으로 나누어 함수를 다시 호출하는 단계 예) factorial(n) = n * factorial(n-1)재귀 함수 예제: 팩토리얼팩토리얼 함수는 자연수 n에 대해 n! = n × (n-1) × … × 1을 계산하는 대표적인 재귀 예제입니다.function factorial(n) { // 베이스 케이스: n이 1 이하이면 팩토리얼은 1입니다. if (n 재귀 호출 과..
JSON.stringifyJSON.stringify 메서드는 객체, 배열, 원시 타입의 값을 JSON 형식의 문자열로 변환합니다. 기본적으로 객체의 열거 가능한 문자열 기반 프로퍼티만 포함되며, 함수, undefined, 심볼 값은 무시됩니다.기본 사용법const student = { name: "Alex", age: 21, enrolled: true, courses: ["Mathematics", "Physics"]};const jsonString = JSON.stringify(student);console.log(typeof jsonString); // 출력: "string"console.log(jsonString);// 출력: {"name":"Alex","age":21,"enrolled":tr..