[JavaScript Challenge] 모던자바스크립트 딥 다이브 마라톤 4회차

[JavaScript Challenge] 모던자바스크립트 딥 다이브 마라톤 4회차

🚀 JavaScript Challenge 🚀

자바스크립트 첼린지 노션 학습노트 바로 가기 >>

안녕하세요 ! 챌린지라는 단어를 들으면 뭔가 설레지 않나요? 💪🏻 챌린지는 어려운 사업이나 기론 경신 따위에 맞섬을 비유적으로 이르는 말이라고 합니다 :)

저희 스터디는 끊임없이 도전하며 서로의 성장을 도모합니다.저희는 서로 배운 내용을 공유하며, 부족한 부분을 채워주며 함께 성장하는 스터디 입니다.

반갑습니다 🙌🏻

🌟 스터디 진행 회차 및 일자 🌟

[JavaScript Challenge] 4회차(2021.07.10) 토요일

✏️ 스터디 주요 내용 ✏️

📚 학습 노트

📘 최재영 님의 학습노트

📘 김수진 님의 학습노트

📘 조항주 님의 학습노트

📘 노가혜 님의 학습노트

📚 피드백 노트

📒 최재영 님의 피드백노트

📒 조항주 님의 피드백노트

📒 노가혜 님의 피드백노트

📚 학습 진도

김수진 12장 함수 - 12.1 함수란? ~ 12.5 함수 호출

최재영 12장 함수 - 12.6 참조에 의한 전달과 외부 상태의 변경 ~ 12.7 다양한 함수의 형태

조항주 13장 스코프

노가혜 14장 전역 변수의 문제점

🙋🏻 스터디에서 나왔던 질문 🙋🏻‍♀️

노가혜 : Q1. var 키워드를 사용하시나요?

최재영 : Q2. 호출에 의해서 상위 스코프를 결정하는 동적인 방식은 어떻게 진행이 되는 건가요?

🧑🏻‍💻 질문에 대한 답변 👩🏻‍💻

var 키워드를 사용하시나요?

최재영 님의 답변

var키워드는 함수레벨스코프, 변수호이스팅의 문제 등등으로 인하여 현재는 많이 사용되지 않는 변수 키워드로 알고 있습니다. 하지만 var키워드가 왜 쓰이지 않는지, 어떤 문제점이 있는지에 대하여는 알고 넘어가야 할 부분이라고 생각합니다. 기존에 쓰이던 var키워드의 문제점은 let키워드와 const키워드는 어떻게 보완하였는지에 대하여 아는 것도 좋을 것 같다는 생각이 듭니다. 또한 모던 딥 다이브 책에서는 초반 부분에 var키워드를 활용한 예시들이 많이 보입니다. 그에 대한 문제점은 초반에 설명을 해주지 않는데요 바로 다음 장에서는 let, const, var키워드를 비교하는 장이 나옵니다. 거기서 함께 좀 더 자세하게 알아보면 좋을 것 같습니다.

호출에 의해서 상위 스코프를 결정하는 동적인 방식은 어떻게 진행이 되는 건가요?

조항주 님의 답변

1.함수를 어디서 호출했는지에 따라 함수의 상위 스코프를 결정한다.

2.함수를 어디서 정의했는지에 따라 함수의 상위 스코프를 결정한다.

첫 번째 방식을 동적 스코프라 합니다. 함수를 정의하는 시점에는 함수가 어디서 호출될지 알 수 없고 함수가 호출되는 시점에 동적으로 상위 스코프를 결정해야 하기 때문에 동적 스코프라고 부릅니다

두번째 방식을 렉시컬 스코프 또는 정적 스코프라고 부릅니다. 함수가 정의가 평가되는 시점에 상위 스코프가 정적으로 결정되기 때문에 정적 스코프라고 부릅니다 자바스크립트를 비롯한 대부분의 프로그래밍 언어는 렉시컬 스코프를 따릅니다.

var x=1;

function foo(){
  var x=10;
  bar();
}

function bar() {
  console.log(x);
}

foo(); //1
bar(); //1

자바스크립트는 렉시컬 스코프이기 때문에 bar함수는 전역 코드가 실행되기 전에 먼저 평가되어 함수 객체를 생성하고 이 때 생성된 bar 함수 객체는 자신이 정의된 스코프를 기억하기 때문에 위의 코드는 1을 두번 호출합니다.

🧑🏻‍💻 다음번 스터디 주제 👩🏻‍💻

🧑🏻‍💻노가혜 ⇒ 15장 - ▣ 15장: let, const 키워드와 블록 레벨 스코프

🧑🏻‍💻조항주 ⇒ 16장 - ▣ 16장: 프로퍼티 어트리뷰트

🧑🏻‍💻최재영 ⇒ 17장 - ▣ 17장: 생성자 함수에 의한 객체 생성

🧑🏻‍💻김수진 ⇒ 18장 - ▣ 18장: 함수와 일급 객체

오늘도 다들 학습하시느라 고생 많으셨습니다.

댓글을 작성해보세요.

채널톡 아이콘