
✨ 이번 글에서 사용할 주요 기능
- 자료형 별로 변수 선언하기
- 서로 다른 형태의 변수들이 명시적, 암시적으로 자료형이 변환되는 방법 알아보기
- 명시적으로 자료형을 변환할 때에는 변환하고자 하는 타입(변환할 값)을 사용한다. (ex. Boolean("true"))
1. 숫자 (Number)
- 정수형
- 실수형
- 지수형
- NaN : Not a Number
- 숫자가 아님을 나타냄
- 수학적으로 정의되지 않는 계산을 수행하거나, 숫자가 아닌 값을 숫자로 변환하려고 할 때 발생
- infinity
// 1. 숫자
// 1-1. 정수
let num1 = 10;
console.log(num1)
console.log(typeof num1)
//1-1. 실수
let num2 = 3.14
console.log(num2)
console.log(typeof num2)
//1-3. 지수
let num3 = 2.5e5 //2.5에 10의 5제곱을 곱함
console.log(num3)
console.log(typeof num3)
//1-4.Nan : Not a number
let num4 = "Hello"/2
console.log(num4)
//1-5. infinity
let num5 = 1/0
console.log(num5)
console.log(typeof num5)
let num6 = -1/0
console.log(num6)
console.log(typeof num6)

2. 문자열 (string)
- 문자의 나열
- "", ''안의 내용을 문자열로 인식
let str = "Hello world!"
console.log(str)
console.log(typeof str)
//문자열 길이 확인하기
console.log(str.length)
//문자열 결합하기
let str1 = "Hello, "
let str2 = "world!"
let result = str1.concat(str2)
console.log(result)
//문자열 자르기
let str3 = "Hello, World!"
console.log(str3.substr(7, 5)) //str3의 일곱번째부터 5개까지 출력한다
console.log(str3.slice(7, 12)) //str3의 일곱번째부터 12번째 문자까지 출력한다
//문자열 검색
let str4 = "Hello, World1"
console.log(str4.search("World")) //world가 시작되는 ㅈ지ㅓㅁ을 출력
let str5 = "Hello, world"
let result01 = str5.replace("world", "Javascript")
console.log(result01)
//문자열 분할
let str6 = "apple, banana, kiwi"
let result02 = str6.split(",")
console.log(result02)

3. 불리언 (Boolean)
- 참과 거짓을 나타내는 형식
- true / false
- 조건문과 논리 연산자에서 주로 사용된다.
//Boolean : 참과 거짓
let bool1 = true
let bool2 = false
console.log(bool1)
console.log(bool2)
console.log(typeof bool1)
console.log(typeof bool2)

4. Undefined와 null
- Undefined : 값이 할당되지 않은 변수
- null : 값이 존재하지 않음(값 자체가 null)\
//undefined : 정의되지 않은
let x;
console.log(x)
//null : 값이 존재하지 않음을 명시적으로 나타내는 방법
let y = null
console.log(y)

5. 객체와 배열 (Object & Array)
- 객체 : 속성과 메소드를 가지는 컨테이너
- 중괄호{}를 사용하여 객체 생성
- 속성값 지정 가능
- 배열 : 여러 개의 데이터를 순서대로 저장하는 데이터 타입
- 대괄호[]를 사용하여 배열 생성
//object(객체) : key-value pair
let person = {
name: "Jeongwon",
age:20,
isMarried :false
}
console.log(typeof person);
//array(배열) : 여러개의 데이터를 순서대로 저장한느 데이터 타입
let number = [1, 2, 3, 4, 5]
console.log(number[1]) //배열의 인덱스는 0부터 시작
let fruits = ['apple', 'banana', 'orange']

1. 암시적 형 변환
- 자바스크립트에서 자동으로 수행된다.
- 일반적으로 연산자를 사용할 때 발생한다.
- 빈 문자열이나 공백 문자는 0으로 변환
//{}, null, undefined + "1" = 문자열
//숫자 + 문자 = 문자열로 변환
let result1 = 1+"2"
console.log(result1)
console.log(typeof result1)
//문자 + 불리언 = 문자
let result2 = "1"+ true;
console.log(result2)
console.log(typeof result2)
//-. * 연산은 숫자가 문자보다 우선순위가 높음
let result3 = 1-"2"
console.log(result3)
console.log(typeof result3)
let result4 = "2" * "3"
console.log(result4)
console.log(typeof result4)

1. 명시적 형 변환
- 코드 작성자가 직접 자료형을 변환하는 것
//2. 명시적 형변환
//2-1.boolean
console.log(Boolean(0))
console.log(Boolean(""))
console.log(Boolean(null))
console.log(Boolean(undefined))
console.log(Boolean(NaN))
console.log("-----------------")
console.log(Boolean("False"))
console.log(Boolean({}))
//2-2.문자열
let result5 = String(123)
console.log(result5)
console.log(typeof result5)
let result6 = String(true)
console.log(result6)
console.log(typeof result6)
let result7 = String(false)
console.log(result7)
console.log(typeof result7)
let result8 = String(null)
console.log(result8)
console.log(typeof result8)
let result9 = String(undefined)
console.log(result9)
console.log(typeof result9)
//1-3.number
result10 = Number("123")
console.log(result10)
console.log(typeof result10)
