Front-End 11

자바스크립트 일반 함수, 익명 함수, 화살표 함수의 차이점

자바스크립트에서 함수를 선언하는 방법에는 여러 가지가 있으며, 그중에서도 일반 함수(Named Function), 익명 함수(Anonymous Function), 그리고 화살표 함수(Arrow Function)는 가장 기본적인 개념입니다. 이번 글에서는 각각의 특징과 차이점에 대해 자세히 살펴보겠습니다.1. 일반 함수 (Named Function)일반 함수는 이름이 있는 함수로, function 키워드를 사용하여 선언됩니다. 이러한 함수는 재사용이 가능하고, 코드의 가독성을 높이는 데 도움이 됩니다.특징이름을 가진다 - 함수 선언 시 함수 이름을 지정할 수 있습니다.호이스팅(Hoisting)이 적용된다 - 함수 선언문은 코드 실행 전에 메모리에 등록되므로, 선언하기 전에 호출할 수 있습니다.재사용이 용이..

Front-End 2025.02.12

스코프 체인(Scope Chain) 이란?

1. 스코프(Scope)란?스코프(Scope)는 변수가 접근할 수 있는 범위를 의미합니다. 즉, 특정 변수나 함수가 어디에서 선언되었고, 어디에서 접근할 수 있는지를 결정하는 규칙을 정의합니다.자바스크립트에서는 크게 전역 스코프(Global Scope), 함수 스코프(Function Scope), **블록 스코프(Block Scope)**가 존재합니다.2. 스코프 체인(Scope Chain) 개념스코프 체인은 특정 변수나 함수를 찾을 때, 자바스크립트 엔진이 실행 컨텍스트의 스코프를 따라 올라가면서 검색하는 과정입니다.즉, 변수를 찾을 때 현재 스코프에서 먼저 찾고, 없으면 상위 스코프로 이동하여 검색하는 구조를 **스코프 체인(Scope Chain)**이라고 합니다.2.1 스코프 체인의 동작 방식현재 ..

Front-End 2025.02.05

자바스크립트(JavaScript) Promise와 Async의 차이점

JavaScript 비동기 프로그래밍에서 Promise와 Async/Await는 흔히 사용되는 방식입니다. 두 방식 모두 비동기 처리를 지원하지만, 각각의 동작 방식과 활용법에는 차이가 있습니다. 이번 글에서는 Promise와 Async/Await의 차이점과 각각의 특징을 예제와 함께 살펴보겠습니다.1. Promise란?Promise는 비동기 작업의 상태와 결과를 나타내는 객체입니다. 세 가지 상태를 가집니다:Pending(대기 중): 초기 상태, 작업이 완료되지 않음.Fulfilled(성공): 작업이 완료되고 결과를 반환함.Rejected(실패): 작업이 실패하고 에러를 반환함.Promise 예제const fetchData = () => { return new Promise((resolve, reje..

Front-End 2024.12.09

자바스크립트 클로저(Closure)란?

1. 클로저란 무엇인가요? 🤔**클로저(Closure)**란 함수와 그 함수가 선언될 당시의 **렉시컬 환경(Lexical Environment)**을 함께 기억하는 구조를 말합니다. 간단히 말해, 함수가 자신이 생성될 때의 외부 변수에 접근할 수 있는 기능입니다.function outer() { let outerVar = "I am from outer"; function inner() { console.log(outerVar); // 외부 함수의 변수에 접근 가능 } return inner;}const myClosure = outer();myClosure(); // 출력: I am from outer위 코드에서 inner 함수는 outer 함수가 종료된 이후에도 outerVar에 접근할 ..

Front-End 2024.12.09

자바스크립트 호이스팅 (Hoisting)이란?

1. 호이스팅이란 무엇인가요? 🤔자바스크립트의 실행 컨텍스트에서 **호이스팅(Hoisting)**은 변수 선언과 함수 선언이 실제 코드에서 나타나는 위치와 관계없이 최상단으로 끌어올려지는 동작을 의미합니다. 하지만 끌어올려지는 것은 "선언" 부분이며, "할당"은 포함되지 않는다는 점을 명심해야 합니다. 호이스팅의 기본 개념을 코드로 살펴보겠습니다:console.log(myVar); // 출력: undefinedvar myVar = 10;console.log(myVar); // 출력: 10위 코드는 아래와 같이 동작합니다:var myVar;console.log(myVar); // undefinedmyVar = 10;console.log(myVar); // 10이처럼 변수 선언이 코드의 상단으로 끌어올려지..

Front-End 2024.12.09

자바스크립트 Array Function(배열 함수) 총정리

자바스크립트(JavaScript) 배열 함수에 대해서 알아보고 예시로 설명하겠습니다 ! 1. forEachforEach는 배열의 각 요소를 순회하며 제공된 콜백 함수를 실행합니다. 반복 작업에 적합하며 배열 자체를 변경하지 않습니다.사용법const numbers = [1, 2, 3, 4, 5];numbers.forEach((number) => { console.log(number * 2); // 배열의 각 요소를 두 배로 출력});결과2468102. mapmap은 배열의 각 요소에 대해 제공된 함수를 실행하고, 결과를 새로운 배열로 반환합니다.사용법const numbers = [1, 2, 3, 4, 5];const doubled = numbers.map((number) => number * 2);c..

Front-End 2024.12.06

자바스크립트 ?. 옵셔널 체이닝(Optional Chaining)

자바스크립트 옵셔널 체이닝 (Optional Chaining)값이 null 또는 undefined일 경우 에러가 발생할 수 있습니다. 이러한 상황을 해결하기 위해 도입된 것이 바로 옵셔널 체이닝 (Optional Chaining) 입니다. 옵셔널 체이닝이 무엇인지, 어떻게 작동하는지, 그리고 이를 코드에서 어떻게 활용할 수 있는지 설명하겠습니다. 1. 옵셔널 체이닝이란 무엇인가요? 🤔옵셔널 체이닝(?.)은 객체의 속성을 탐색할 때, 해당 속성이 존재하지 않거나 null 혹은 undefined일 경우 undefined를 반환하도록 해주는 자바스크립트 연산자입니다. 이를 통해 중첩된 객체를 안전하게 접근할 수 있어 코드의 가독성과 안정성이 향상됩니다.예시 코드const user = { profile: {..

Front-End 2024.12.05

자바스크립트 .attr()과 .prop()에 대한 모든 것

JavaScript를 활용한 DOM 조작에서 jQuery의 .attr()과 .prop() 메서드는 매우 자주 사용됩니다. 그러나 둘의 차이를 명확히 이해하지 못하면 코드가 의도와 다르게 동작할 수 있습니다.1. .attr()이란?attr() 메서드는 HTML 요소의 속성(attribute) 값을 가져오거나 설정할 때 사용됩니다. HTML 태그에 정의된 속성을 기반으로 동작합니다.기본 사용법// 속성 값 가져오기let hrefValue = $("a").attr("href");// 속성 값 설정하기$("img").attr("alt", "대체 텍스트");특징HTML 코드에 정의된 속성 값을 기반으로 함.동적으로 변경된 속성값은 업데이트되지 않을 수 있음.예제Example$("#link").attr("href"..

Front-End 2024.12.05

자바스크립트(JavaScript) 디바운스와 쓰로틀링 이란?

디바운스(Debounce)와 쓰로틀링(Throttling)은 JavaScript에서 이벤트 발생 빈도를 제어하기 위한 기술입니다. 많은 이벤트가 동시에 발생하는 것을 방지하여 성능을 최적화할 수 있습니다.디바운스(Debounce)디바운스는 이벤트가 연속적으로 발생할 때, 특정 시간 동안 추가적인 이벤트가 발생하지 않으면 한 번만 실행되도록 합니다.주요 특징:이벤트 호출을 지연시키며, 마지막 이벤트 발생 후 지정된 시간이 지나야 실행됩니다.사용 사례: 검색 입력창, 창 크기 조정 이벤트 등.예시: 검색 입력창function debounce(func, delay) { let timer; return function (...args) { clearTimeout(timer); timer = set..

Front-End 2024.12.03

SSR vs CSR: 웹 렌더링 방식의 차이

웹 개발에서 **SSR (Server-Side Rendering)**과 **CSR (Client-Side Rendering)**은 가장 널리 사용되는 렌더링 방식입니다. 각 방식은 성능, 사용자 경험, SEO 등 다양한 측면에서 차이가 있으며, 프로젝트의 요구사항에 따라 적합한 방식을 선택해야 합니다. 🌐SSR (Server-Side Rendering)란?SSR은 사용자가 브라우저에서 페이지를 요청하면, 서버가 HTML 파일을 생성하여 클라이언트에 전달하는 방식입니다. 이 HTML은 모든 데이터가 포함된 상태로 브라우저에 전달되며, 브라우저는 이를 렌더링하여 화면에 표시합니다.특징빠른 초기 로딩 속도: 브라우저는 완성된 HTML을 바로 렌더링하기 때문에 초기 화면 로딩 속도가 빠릅니다.SEO에 유리: ..

Front-End 2024.11.29