다양한 값을 담을 수 있는 박스와 같은 컨테이너
값이 저장된 메모리 주소와 이름을 연결, 그 주소의 별칭
// 선언
let lang;
// 할당
lang = "JS";
// 재할당
lang = "JavaScript";
// 선언과 동시에 할당 (*추천*)
let lang2 = "JavaScript";
// 재할당
lang2 = "JS";
더 이상 나눌 수 없는 값
더 이상 평가될 수 없는 하나의 식으로 자료형을 간단히 이루는 값
객체를 제외한 모든 타입은 불변 값(변경할 수 없는 값)을 정의, 원시값이라고 한다.
// 문자열 값 (원시 값)
var str = "word";
str.toUpperCase();
console.log(str); // word
typeof
typeof
는 변수 값의 데이터 타입을 문자열로 반환하는 연산자이다.const un = undefined;
const nu = null;
const bool = false;
const num = 0;
const str = "문자열";
console.log(typeof un); // undefined
console.log(typeof nu); // object
console.log(typeof bool); // boolean
console.log(typeof num); // number
console.log(typeof str); // string
원시 값이 아닌 데이터 타입은 레퍼런스, 객체 타입을 의미
객체
const obj = {
name : "lee",
};
console.log(typeof obj); // object
배열
const arr = ["lee"];
console.log(typeof arr); // object
함수
function func(){
return "lee";
}
console.log(typeof func); // object
원시 값 비교
동등 연산자를 사용할 때
엄격한 비교는 ===, 느슨한 비교는 ==
let num = "0";
if (num === 0) {
console.log("num은 0입니다.");
} else {
console.log("num은 0이 아닙니다"); // num은 0이 아닙니다.
}
if (num == 0) {
console.log("num은 0입니다."); // num은 0입니다.
} else {
console.log("num은 0이 아닙니다.");
}
자바스크립트 숫자는 부동소수점이다.
console.log(1 === 1.0); // true
console.log(Math.pow(2, 9999)); // 2^9999를 의미, Infinity
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
Not a Number
console.log(isNaN("1")); // false
‘ ’ , “ ”
const word = '문자';
const word2 = "문자";
`` (백틱)
const word3 = `문자
`;