Frontend/JavaScript

    for...of와 forEach 차이

    for...of와 forEach 차이

    🧐 for...of 루프- 반복을 중간에 멈출 수 있다🧐 forEach 메서드- 중간에 반복을 멈출 수 없다.- 예외를 던지는 방법을 사용하면 멈출 수는 있지만 권장되지 않음  const items = [ { name: 'Pickle', extra: 1 }, { name: 'Size', choices: ['Small', 'Medium', 'Large'] }];  for...of 루프for (const item of items) { console.log(item.name);}for...of 루프는 배열이나 다른 이터러블 객체의 요소를 반복하는 데 사용된다.반복을 중간에 멈출 수 있다.  forEach 메서드items.forEach(item => { console.log(item.name);});..

    렉시컬 스코핑

    렉시컬 스코핑

    💡 렉시컬 스코핑 : 변수의 유효 범위를 결정하는 규칙 중 하나이다.- 스코프는 함수를 호출할 때가 아닌 선언할 때 생긴다.- 함수 외부에서는 함수 내부에서 선언된 변수에 접근할 수 없다.- 정적 스코프라고도 불린다.  렉시컬 스코핑(lexical scoping) 많이들 헷갈리는 개념인데 스코프는 함수를 호출할 때가 아니라 선언할 때 생긴다.호출이 아니라 선언! 정적 스코프라고도 불린다.  다음 코드에서 console이 어떻게 찍힐지 예상해 보기var name = 'zero';function log() { console.log(name);}function wrapper() { var name = 'nero'; log();}wrapper();  정답: zero스코프는 함수를 선언할 때 생긴다.log..

    스코프 체인

    스코프 체인

    💡 스코프 체인 : 꼬리를 물고 계속 범위를 넓히면서 찾는 관계를 스코프 체인이라 한다. 💡내부 함수에서는 외부 함수의 변수에 접근 가능하지만 외부 함수에서는 내부 함수의 변수에 접근할 수 없다.  전역변수와 지역변수의 관계에서 스코프 체인(scope chain)이란 개념이 나온다.내부 함수에서는 외부 함수의 변수에 접근 가능하지만 외부 함수에서는 내부 함수의 변수에 접근할 수 없다.  모든 함수들은 전역 객체에 접근할 수 있다.var name = 'zero';function outer() { console.log('외부', name); // zero function inner() { var enemy = 'nero'; console.log('내부', name); // zero } ..

    클로저

    클로저

    💡 클로저는 스코프와 실행 컨텍스트에 대한 사전 지식이 있으면 이해하는데 도움이 된다. 💡 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 💡 클로저는 외부함수보다 중첩함수가 더 오래 유지되고 이미 생명주기가 종료한 외부 함수의 변수를 참조할 수 있다. - 상위 스코프의 어떤 식별자도 참조하지 않는 함수는 클로저가 아니다. - 중첩 함수가 클로저였지만 외부 함수보다 일찍 소멸되면 클로저의 본질에 부합하지 않는다. 클로저 함수 일급 객체로 취급하는 함수형 프로그래밍 언어에서 사용되는 중요한 특성이다. MDN에서의 정의 : 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다. 렉시컬 스코프(= 정적 스코프) const x = 1; function foo() { const x = 10; /..