학습 내용
가. 변수
-
변수는 선언과 데이터의 할당이 필요
-
'=' 할당 연산자
-
let num; // 변수의 선언
num = 10 ; // 데이터 할당
-
let num = 10 ; // 키워드 변수이름 = 데이터(값)
-
키워드 의 정류
- var : 과거에 사용하던 방식 이라 하나 아직도 많이 쓰이는 듯?
- let : 현재 제일 많이 쓰이며 데이터가 변경 가능
- const : 변경이 불가능, 고정 시켜야 할 데이터에 사용
-
변수 : 변경 가능
상수 : 한번 지정한 후 변경 불가능
불변값 : 이미 지정이 되어 있는 값. (number, string, boolean 등)
나. 타입
- 정적 타입 언어(static typed language) vs 동적 타입 언어(dynamic typed language)
- 정적 타입 언어 : 변수와 데이터의 타입이 일치(ex:java)
int num = 100;
char ch = 'a';
- 동적 타입 언어 : 변수의 타입 상관없이 모든 데이터 할당 가능(ex : javascript)
let num = 100;
let ch = 'a';
- 원시 자료형(Primitive type) vs 참조 자료형(Reference type)
- 원시 자료형
- 변수에 데이터가 할당될 때 메모리에 데이터를 바로 저장(변경)
- 6가지 타입이 존재 : string, number, boolean, null, undefined, sysmbol
- Access by value
- 참조 자료형
- 변수의 값이 저장된 힙(heap) 메모리의 주소값을 저장
- 3가지 타입이 존재 : 객체(object), 배열(Array), 함수(function)
- Access by Reference
- typeof : 특정 값의 타입 확인 객체 (string type 으로 출력)
- typeof(11); // 'number'
- typeof('abc'); // 'string'
- 비교연산자 (===, ==)
- === : 엄격한 같음(비교), 변수의 형식과 데이터 비교
- == : 느슨한 같음(비교), (형식이 다른) 데이터 비교, 강제형변환 수행
- falsy 값
- “ false==0 //true “ 이 성립하는 이유는 0 이란 값이 falsy 값이기 때문입니다. 자바스크립트에서는 숫자 0을 강제로 false 로 변환시켜버립니다.
- 아래의 6가지 값은 자바스크립트에서 falsy값으로 통용됩니다.
- False
- 0
- “”
- Null
- Undefined
- NaN
- 예제
false == 0 //true
0 == “” // true
“” == false
null == null // true
Undefined == undefined // true
Null == undefined // true
NaN 은 어떠한 값과도 동일하지 않다.
NaN == null // false
NaN == undefined //false
NaN == NaN // false