2021-8-10 TIL

고병표·2021년 8월 10일
0

CodeSoom-TIL

목록 보기
2/16

Facts (사실, 객관)

  • var 과 let, const 차이를 배움
  • 요즘 JS 공식문서를 많이 들어감
  • 2번째 과제에 많은 시간이 걸림

Feelings (느낌, 주관)

과제를 했지만 작성한 코드가 마음에 들지 않는다.
(너무 if문 투성이)
오늘 빌린 JS책과 공식문서를 당분간 꾸준히 읽을 생각이다.

Findings (배운 점)

오래된 'var'

  • var로 선언한 변수는 let으로 선언한 변수와 유사합니다. 대부분의 경우에 let을 var로, var를 let으로 바꿔도 큰 문제 없이 동작합니다.

  • var로 선언한 변수의 스코프는 함수 스코프이거나 전역 스코프입니다. 블록 기준으로 스코프가 생기지 않기 때문에 블록 밖에서 접근 가능합니다.

if (true) {
  var test = true; // 'let' 대신 'var'를 사용했습니다.
}

alert(test); // true(if 문이 끝났어도 변수에 여전히 접근할 수 있음)
  • 코드 블록이 함수 안에 있다면, var는 함수 레벨 변수가 됩니다.
function sayHi() {
  if (true) {
    var phrase = "Hello";
  }

  alert(phrase); // 제대로 출력됩니다.
}

sayHi();
alert(phrase); // Error: phrase is not defined
  • 함수 본문 내에서 var로 선언한 변수는 선언 위치와 상관없이 함수 본문이 시작되는 지점에서 정의됩니다(단, 변수가 중첩 함수 내에서 정의되지 않아야 이 규칙이 적용됩니다).
  • 선언(var)은 호이스팅 되지만 할당(=)은 X
function sayHi() {
  // var phrase; 동일 '호이스팅'
  phrase = "Hello";

  alert(phrase);

  var phrase;
}
sayHi();

props는 object 취급!

null 경우 처리는 (props || {})

Affirmation(자기 선언)

  • 꾸준히 반복적으로 학습하자!

Resource

0개의 댓글