210821 TIL

CoderS·2021년 8월 21일
post-thumbnail

TIL DAY 25

오늘 배운 일

✔️ 코드잇에서 JavaScript 중급

  • null 병합 연산자

    • 물음표 2개를 사용해서 null 혹은 undefined 값을 가려내는 연산자

해설)

  • example1과 2를 보면, 지금 null 병합 연산자 왼편에 각각 null과 undefined가있죠? 이렇게 연산자 왼쪽의 값이 null 이나 undefined라면 연산자 오른쪽의 값이 리턴되시고, example3처럼 연산자 왼쪽의 값이 null 이나 undefined가 아니라면 연산자 왼쪽의 값이 리턴되는 원리로 동작합니다. 결과적으로 마지막 줄에서 콘솔에 출력되는 값은 I love Codeit이 됩니다.

+OR 연산자와 비슷한 방식을 보인다.

  • 밑에 있는 예제를 잘 확인해보면 공통되는게 있다.

  • 변수와 스코프

    • var 특이점

      • 변수 이름 중복선언 가능
      • 변수 선언 전에 사용 가능(호이스팅) = > 선언한 변수를 위로 올라간것같다고 해서 불러진다
      • 함수 스코프
    • let & const의 특이점

      • 변수 이름 중복선언 불가 (SyntaxError 발생)
      • 변수 선언 전에 사용 불가 (ReferenceError 발생)
      • 블록 스코프
    • 함수 스코프(function scope)와 블록 스코프(block scope)

      • var x = 함수 스코프
      • let y = 블록 스코프
      • const z = 블록 스코프

      => 함수 스코프란 말 그대로 함수를 기준으로 스코프를 구분한다는 뜻 그리하여 함수 안에서 선언된 변수는 함수 안에서만 유효!

      결과값 :

    결과값 :

    • 함수를 제외한 for, if, while 등과 같은 문법 안에서 선언한 변수는 그 문법 밖에서도 계속 유효했었기 때문에 때로는 중복선언등의 문제가 생겨난다. 이럴때는 let과 const를 사용하면된다.

    => 블록 스코프는 중괄호로 감싸진 코드 블록에 따라 유효 범위를 구분

    결과값 :

    • 코드 블록안에서 선언된 변수는 문법 밖에서는 유효한 값이 아니다.
      그리하여 밖에 있는 콘솔들은 에러 현상을 나타낸다.

느낀점 :

  • 오늘은 자바스크립트 동작 원리를 마무리 짓는 날로서 null 병합 연산자와 변수와 스코프의 관계에 대해 배워보는 시간을 가졌다. 생각보다 복잡한 구조로 되어있어 외울게 많다.
profile
하루를 의미있게 살자!

0개의 댓글