- runtime : run하는 time
 
- 코드를 작성할 때가 아니라, 실제 코드가 실행될 때, 터미널에 코드가 실행될 때 데이터 타입이 결정된다.
 
1. 숫자
1-1. 정수
let num1 = 10;
console.log(num1); // 10
console.log(typeof num1); // number
1-2. 실수 (float).
let num2 = 3.14;
console.log(num2); 
console.log(typeof num2); 
1-3. 지수형(Exp).
let num3 = 2.5e5; 
console.log(num3); 
console.log(typeof num3); 
1-4. 문자열 / 정수
let num4 = " Hello" / 2; 
console.log(num4); 
console.log(typeof num4); 
1-5. Infinity (무한대)
let num5 = 1 / 0;
console.log(num5); 
console.log(typeof num5); 
1-6. Infinity (무한대)
let num6 = -1 / 0;
console.log(num6); 
console.log(typeof num6); 
2. 문자 : string (문자열 = 문자의 나열)
let str = "Hello, World!";
console.log(str);
console.log(typeof str); 
2-1. 문자열 길이 확인하기
console.log(str.length); 
2-2. 문자열 결합하기
let str1 = "Hello, ";
let str2 = "World!";
let result = str1.concat(str2);
console.log(result); 
2-3. 문자열 자르기
let str3 = "Hello, World!";
console.log(str3.substr(7, 5)); 
console.log(str3.slice(7, 12)); 
2-4. 문자열 검색
let str4 = "Hello, World!";
console.log(str4.search("World")); 
2-5. 문자열 대체
let str5 = "Hello, World!";
let result01 = str5.replace("World", "JavaScript"); 
console.log(result01); 
2-6. 문자열 분할
let str6 = "apple, banana, kiwi";
let result02 = str6.split(","); 
console.log(result02); 
3. 불리언(Boolean)
true (참), false(거짓)
let bool1 = true;
let bool2 = false;
console.log(bool1); 
console.log(typeof bool1); 
console.log(bool2); 
console.log(typeof bool2); 
4. undefined
let x; 
console.log(x); 
console.log(typeof x); 
5. null
// null : 값이 존재하지 않음을 '명시적'으로 나타내는 방법
// null === undefined
let y = null;
console.log(y); // null
console.log(typeof y); //object
6. object (객체) : key-value pair
let person = {
  name: "Choi",
  age: 20,
  isMarried: true, 
};
console.log(person);
console.log(typeof person); 
7. array (배열)
let number = [1, 2, 3, 4, 5];
let fruits = ["apple", "banana", "orange"];