tjddndk17
[JavaScript] 정리 본문
true / false
- false: "", null, undefined, 0, NaN, false
- true: 나머지
undefined: 선언은 되었으나 값이 할당 되지 않은 상태
NaN: "숫자가 아니다" 를 의미하는 값
- ex1) Number(undefined) // NaN
- ex2) Number(null) // 0
let / const
- 블록 스코프( block scoped )를 가지는 지역변수 [ 코드블록 내에서 선언된 변수는 코드블록 내에서만 유효 ]
- 변수 재선언 불가
- 호이스팅시 변수 초기화 하지 않음
- 선언 단계 > 초기화 단계 > 할당 단계 [ 변수 선언문에서 초기화 단계 실행 / 초기화 이전에 변수에 접근시 참조에러 발생 / 초기화 되지 않으면 변수를 참조할수 없다 ]
- let과 const는 const가 재할당이 불가능한 상수라는 점을 제외하면 동일
var
- 함수 스코프( function scoped )를 가지는 지역변수 or 전역변수 [ 함수 외부에서 선언한 변수는 모두 전역변수 ]
- 변수 재선언 가능
- 호이스팅시 undefined로 초기화
- 선언 단계 + 초기화 단계 > 할당 단계
호이스팅( Hoisting )
- 선언문( var, let, const, function, class ) 을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성
스코프(Scope)
- 유효범위, 어느 범위까지 참조하는 지를 뜻함
클로저(Closure)
- 함수가 선언된 환경의 스코프를 기억하여, 함수가 스코프 밖에서 실행될 때에도 해당 스코프에 접근할 수 있는 기술
- 내부함수에서 외부함수에 선언된 변수를 사용한다면 그 내부함수는 클로저
this
- javascript에서 함수의 this는 다른 언어와 다르게 동작
- 대부분의 경우 this의 값은 함수를 호출한 방법에 의해 결정 ( 호출하는 객체를 참조 )
- 웹 브라우저에서는 window객체가 전역 객체 ( this === window )
- this는 기본적으로 window지만 [ 객체메서드 / bind / call / apply / new / 이벤트리스너 ] 일때 this 바뀜
- strict 모드에서는 undefined
function
arrow function
'개발 > JavaScript' 카테고리의 다른 글
[JavaScript] 정규식 정리 (0) | 2021.12.10 |
---|---|
[JavaScript] defer, async (0) | 2021.07.05 |
ECMA Script ( ES ) (0) | 2021.03.04 |