간단한 요약
오늘은 if 조건문, 반복문, 호이스팅에 대해 알아 보았다.
배운 내용
1. if
- 형태:
if (조건) { 조건이 true일 경우 실행되는 코드 }
- 즉, 조건이
false
가 되는 형태 예를 들면, null, undefined, 0, 빈문자열
들과 같은 조건들은 if 조건을 false
로 만들어 버림.
- 중첩되는 if 조건문을 작성할 수도 있다.
2. else if
- if 조건문과 함께 쓰이는 조건문으로, if 조건이 만족되지 않는 조건 중 하나를 내가 특정할 수 있음.
- 형태:
else if (또 다른 조건) { 조건이 true일 경우 실행되는 코드 }
- 여러가지 else if문이 있다면, 위에서 부터 봤을 때, 먼저 만족되는 조건이 실행되게 됨.
3. else
- 미리 지정해둔 조건들 [ex) if, else if 조건문들]이 만족되지 않았을 때 실행될 수 있는 코드를 작성
- 형태:
else { 실행되는 코드 작성 }
4. ternary operator
- 삼항연산자: 마찬가지로 조건을 설정하고 만족되었을 때 코드를 실행시킬 수 있는 방법임. 보통 간단하게 조건을 이용하고 싶을 때 사용할 수 있는 유용한 방법.
5. parseInt()
parseInt(변수 or 값)
는 괄호안의 값/변수를 str에서 number데이터로 변환해주는 함수이다.
- 나는 보통
+
를 사용한다.
6. global vs local
- global 변수의 경우 전체 document에서 접근성이 있지만, local 변수는 만들어진 scope 내({}중괄호)에서만 접근/활용이 가능.
- 해당 강의에선 중괄호가 전역변수/지역변수를 구분하는 기준이 아니라고 했지만,
const, let
을 사용한다면 중괄호가 그 기준이 됨.
7. 함수의 성격
7-1. 독립적 함수들
- 독립적인 함수 내에 만들어진 변수들은 서로 연결성이 전혀 없다. 즉, 다른 함수에서 다른 함수 내 변수에 접근/활용을 할 수 없다.
7-2. 부모자식 관계의 함수들
- children 입장의 함수에서는 parents 함수의 변수에 접근할 수 있다.(안 쪽에서 바깥 쪽으로 향하는 느낌, scope chain)
- 전역 변수에는 어떠한 함수 내에서라도 접근할 수 있다.
- 반대로, parents 함수에서 children 함수에 접근은 불가하다.(바깥 쪽에서 안 쪽으로 접근)
8. hoisting
- 말그대로 끌어 올려진다는 의미, 보통 선언하기 전 사용하려고 할 때의 현상을 의미함.
8-1. 변수 호이스팅
- 이 링크에서 확인하여 보면 변수 호이스팅의 경우
var
와 const, let
의 호이스팅의 차이점이 존재함.
- 요약: let/const 변수의 경우 var 변수와 다르게 변수의 선언 단계와 초기화 단계 사이에 일시적 사각 지대(TDZ)가 존재하고, TDZ에서 관리 중일 때(let 변수의 선언 또는 const 변수의 선언 및 할당 코드가 나오기 전)에 사용하려 한다면 RferenceError를 발생 시킴
8-2. 함수 호이스팅
- 함수 선언 방식에 따라 호이스팅이 되는 경우가 있고 안되는 경우가 있다.
- function declaration: 호이스팅 O
test1();
function test1() {
console.log('this is test1');
} // this is test1
- function expression: 호이스팅 X
test2();
const test2 = function () {
console.log('this is test2');
}; // Uncaught ReferenceError: Cannot access 'test2' before initialization
어려웠던 내용
어려운 내용은 전혀 없었지만, 해당 강의에선 var
만을 이용하여 설명을 하여 혼란스러웠다. 하지만 const, let
과의 차이점을 조금 더 찾아가면서 공부하니 이해하기 좋았다.
소감
공부했던 JS 내용이지만 복습을 이렇게 강의를 통해 할 수 있어 다시 정리하기 좋다.