js 에서 값은 항상 문자열이나 숫자형과 같은 특정한 자료형에 속한다.
js의 변수는 자료형에 관계없이 모든 데이터일 수 있다. 따라서 변수는 어떤 순간에 문자열일 수 있고 다른 순간엔 숫자가 될 수도 있다.
//no error
let message = "hi";
message = 123456;
이 처럼 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어를 '동적타입'언어라고 부른다
let n = 123;
n = 12.345;
숫자형엔 일반적인 숫자 외에 Infinity, -Infinity,NaNrkxdms '특수 숫자 값'이 포함됨.
js에선 문자열(string)을 따옴표로 묶음.
let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed another ${str}`;
따옴표는 큰따옴표, 작은 따옴표, 역따옴표(backtick) 이 있다.
기본적으로 js는 "와 '에 차이를 두지 않는다.
let name="John";
//변수를 문자열 중간에 삽입
alert(`Hello, ${name}!`); //Hello,John!
//표현식을 문자열 중간에 삽입
alert(`the result is ${1+2}`); // the result is 3
백틱으로 변수나 표현식을 감싼 후 ${...}안에 넣어주면, 아래와 같이 원하는 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있다.
true, false 두가지 값 밖에 없는 자료형
null 값은 지금까지 소개한 자료형 중 어느 자료형도 속하지 않는다.
값이 할당되지 않은 상태를 나타날때 사용.
변수는 선언했지만, 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당
typeof 연산자는 인수의 자료형을 반환. 자료형에 따라 처리방식을 다르게 하고 싶거나 변수의 자료형을 빠르게 알아내고자 할 때 유용.
1. 연산자 : typeof x
2. 함수 : typeof(x)
typeof undefined // "undefined"
type 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") //"symbol"
typeof Math // "object" (1)
typeof null // "object" (2)
typeof alert // "function" (3)