devlogs-210827

Wonseok Choi·2021년 8월 27일
0

대구AI스쿨

목록 보기
43/49

간단한 요약

오늘은 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. 변수 호이스팅

  • 이 링크에서 확인하여 보면 변수 호이스팅의 경우 varconst, let의 호이스팅의 차이점이 존재함.
  • 요약: let/const 변수의 경우 var 변수와 다르게 변수의 선언 단계와 초기화 단계 사이에 일시적 사각 지대(TDZ)가 존재하고, TDZ에서 관리 중일 때(let 변수의 선언 또는 const 변수의 선언 및 할당 코드가 나오기 전)에 사용하려 한다면 RferenceError를 발생 시킴

8-2. 함수 호이스팅

  • 함수 선언 방식에 따라 호이스팅이 되는 경우가 있고 안되는 경우가 있다.
  1. function declaration: 호이스팅 O
test1();
function test1() {
  console.log('this is test1');
} // this is test1
  1. function expression: 호이스팅 X
test2();
const test2 = function () {
  console.log('this is test2');
}; // Uncaught ReferenceError: Cannot access 'test2' before initialization

어려웠던 내용

어려운 내용은 전혀 없었지만, 해당 강의에선 var만을 이용하여 설명을 하여 혼란스러웠다. 하지만 const, let과의 차이점을 조금 더 찾아가면서 공부하니 이해하기 좋았다.


소감

공부했던 JS 내용이지만 복습을 이렇게 강의를 통해 할 수 있어 다시 정리하기 좋다.

0개의 댓글