[2주차] JavaScript 1

Javascript

html은 정적이지만, js는 웹브라우저의 cpu를 통해 동적으로 작동하게 해준다.

변수

  • var : function scope : 변경 가능
  • let : block scope : 변경 가능
  • const : block scope : 변경 불가

Scope

변수가 접근할 수 있는 범위

  • 전역 스코프 Global Scope
    { } 밖에 선언되면 어디서든 접근 가능한 전역 변수가 되고 전역 스코프에 정의된다.
  • 지역 스코프 Local Scope
    { } 안에 선언되었기에 괄호 안에서만 호출이 가능한 지역 변수가 되고 지역 스코프에 정의
    • Function scope
      함수 내부에서 선언된 변수로 내부에서만 접근 가능
    • Block scope
      블록 안에서만 호출 가능

⚡️Lexical Scope
자바스크립트의 scope
함수를 어디서 선언했는지에 따라 상위 스코프를 결정하는 것. 호출이 아니라 선언에 따라 결정된다.
함수의 선언에 따라 상위 스코프가 결정됨!

Var hoisting

자바스크립트는 함수가 실행되기 전 함수 안에 필요한 변수명들을 모두 모아 유효 범위의 최상단에 선언.
값을 올리진 않는다. (선언만 되고, undefined 상태)

var는 호이스팅이 되지만, let,const는 호이스팅이 되지 않는다.

Type

원시 타입 Primitive Type

  • Number (숫자)
  • Strings (문자열)
  • Boolean (불리언)
  • Undefined (정의되지 않음)
  • Null (널)
  • Symbol (ES6 추가)

⚡️ undefined vs Null
둘다 값이 없음을 의미하지만,
null은 '값이 없다'를 의미로 가지고,
undefined는 의미가 없고, 변수가 선언되었는데 값이 없을때 할당된다. 선언했으나 초기화가 없을 때 자동 할당

null == undefined //true
null === undefined //false

객체 타입 Object Type

  • Array (배열)
  • Function (함수)
  • RegExp (정규표현식)

연산자

  • 산술 연산자 | %,*,+,-,/
  • 증가/감소 연산자 | ++,--
  • 비교 연산자 | !=,!==,<,<=,==,===,>,>=
  • 대입 연산자 | %=,&=,*=,+=,-=,/=,<<=,>>=,|=
  • 조건 연산자 | 변수 = (조건) ? true : false
  • 논리연산자 | !,&&,||
  • 문자연산자 | +

⚡️ ===
일치 연산자 (타입까지 비교)

2=='2' //true
2==='2' //false

좋은 웹페이지 즐겨찾기