일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- vercel
- 카카오
- 운영체제
- 자바스크립트
- React
- UX
- Til
- web
- 큐
- 생활코딩
- UI
- 회고
- 프로토타입
- level1
- superstarjypnation
- CSS
- javascript
- Next.js
- 해시테이블
- mysemester
- 프로그래머스
- 백준
- 스택
- redux
- useState
- 자료구조
- REST_API
- 코드스테이츠
- 30daysdowoonchallenge
- html
- Today
- Total
데굴데굴
TIL: 2022-09-06 본문
⚙️ 오늘 배운 언어
JavaScript 동작 원리
🐹 오늘의 기분
밤사이 태풍이 지나갔다. 거센 바람 소리에 몇 번 잠이 깨서 결국 다섯시에 기상함... 8시 쯤 되니 놀라울 정도로 맑게 개어 있었다. 걱정했던 것만큼 피해도 없어서 다행이었다. 오늘은 완전 자율학습이라 제대로 집중하기 위해 열품타를 켜놓고 학습했다. (중간중간 끄긴 했음..핳) 덕분에 예상했던 시간보다 학습이 훨씬 일찍 끝나서 보충자료를 몇 개 읽어보고 있다. 딥다이브는 설명이 한 번에 와닿지는 않아서 우선 모던 자바스크립트부터 읽고 있다. 그거 읽고, 다시 유어클래스에서 개념 읽어보고, 실습해보고 딥다이브 읽는 식.. 스코프까지는 잘 이해가 됐는데 클로저부터 물음표 상태됨. 분명 한국어인데... 한국어가 아니야..! 내일 페어분이랑 실습 있는데 이거 이해가 통 안 돼서 어떡하지...? 오늘 남은 하루랑 내일 학습 시간 잘 활용해서 더 공부해봐야겠다.
🗝 키워드
원시 자료형, 참조 자료형, 스코프, var, let, const, 클로저
🗣 스스로에게 설명
원시 자료형과 참조 자료형은 블로깅 과제가 있어 그걸로 정리했다. ( 🔗 )
스코프는 함수와 중괄호(블록) {..}
에 의해 안쪽 스코프, 바깥쪽 스코프로 나뉘게 된다.
안쪽 스코프에서 선언된 변수는 바깥쪽 스코프에서 접근할 수 없다.
반면 바깥쪽 스코프에서 선언된 변수는 안쪽 스코프에서 접근할 수 있다.
바깥쪽 스코프는 전역 스코프(global scope), 안쪽 스코프는 지역 스코프(local scope)라고 부른다.
지역 스코프는 함수 스코프(function scope)와 블록 스코프(block scope)로 구분된다.
함수 스코프는 말 그대로 함수 내부 영역을 일컫는다. ❗️화살표 함수는 함수 스코프가 아닌 블록 스코프로 취급된다
블록 스코프는 함수 스코프 외에 중괄호를 쓰는 if문, for문, while문의 내부 영역을 일컫는다.
var, let과 const
var은 화살표 함수를 제외한 모든 블록 스코프를 무시한다. (if문 내에서 정의된 var 변수는 if문 바깥에서도 쓸 수 있음)
하지만 함수 스코프는 또 잘 지킨다. (이게 무슨?)
var로 선언한 변수는 전역 변수로 취급되고, 전역 변수는 어디에서든지 접근할 수 있다는 특징이 있다.
이는 곧 값이 언제든지 변할 수 있음을 의미하기에 데이터의 신뢰도를 떨어뜨린다.
따라서 프로그래밍 시 var을 남용하는 것은 좋지 않다.
let으로 변수를 선언했을 때 다른 값을 재할당할 수는 있지만 같은 이름의 변수를 동일한 스코프에 재선언하는 것은 불가능하다.
재선언 시 SyntaxError가 발생한다.
const는 상수 개념으로 재선언은 물론 재할당조차 허용되지 않는다.
재할당 시도 시 TypeError가 발생한다. 재선언 시 let과 마찬가지로 SyntaxError가 발생한다.
변수를 선언할 때 let, const와 같은 키워드를 쓰지 않으면 자동으로 var로 인식되어 전역 변수로 선언된다.
변수 선언 시 키워드를 빼먹지 않도록 주의하자!
🔍 공부가 더 필요한 부분
closure, lexical context
변수의 유효범위와 클로저
ko.javascript.info
🛠 질문 만들기
- 이용자의 정보를 담은 객체를 변수
info
에 할당했다. 변수info
를 변수info2
에 복사하여info2
의 정보를 수정하면 변수info
의 정보는 어떻게 되는가? - 참조 자료형이 저장되는 메모리 공간을 무엇이라고 부르는가?
- 안쪽 스코프에 정의된 변수를 바깥쪽 스코프에서 접근할 수 있는가?
- 변수 선언 시 var보다는 let과 const를 권장하는 이유는 무엇인가?
'Lesson > TIL' 카테고리의 다른 글
TIL: 2022-09-08 (0) | 2022.09.08 |
---|---|
TIL: 2022-09-07 (0) | 2022.09.07 |
TIL: 2022-09-05 (0) | 2022.09.05 |
TIL: 2022-09-02 (0) | 2022.09.02 |
TIL: 2022-09-01 (0) | 2022.09.01 |