-
Part 01. Hello world : 자료형이노베이션캠프/사전캠프: Js 공부 2023. 5. 12. 14:06
> 주절주절 : 아침에 너무 일찍 일어나니까, 하루가 너무 길다 ㅋㅋㅋㅋ ㅜㅜ
* Js 의 변수는 자료형과 관계 없이 모두 데이터일 수 있음.
이처럼 자료의 타입은 있지만 변수에 저장되는 값의 타입은 언제든 바꿀 수 있는 언어를 '동적 타입' 언어 라고 함.
1. 숫자형(number type)
- 정수 및 부동소수점 숫자(floating point number)를 나타냄
- 숫자형과 관련된 연산 (대표) : 곱셈(*) 나눗셈(/) 덧셈(+) 뺄셈(-)
- Infinity : 어떤 숫자보다 더 큰 특수 값, 무한대
: 어느 숫자든 0으로 나누면 얻어낼 수 있음
: Infinity 를 직접 참조하는 것도 가능함
alert( Infinity ); // 무한대
- NaN : 숫자가 아님. 계산 중 에러가 발생했음을 알려주는 값.
: 말도 안되는 연산을 하더라도 Js에서는 치명적인 에러까지 되지는 않음. NaN을 반환하며 연산이 종료될뿐..
2. BinInt
- 길이에 상관없이 정수를 나타낼 수 있음
- 암호 관련 작업 같이 아주 큰 숫자가 필요하거나, 아주 높은 정밀도로 작업을 해야할 때 사용하기 유용
- 정수 리터럴 끝에 n을 붙이면 만들 수 있음
// 끝에 'n'이 붙으면 BigInt형 자료입니다. const bigInt = 1234567890123456789012345678901234567890n;
- 자주 쓰이지는 않음(표준으로 채택된지도 얼마 안 됐음(
- 호환성 이슈 있음. 확인하면서 사용(이 글이 작성된 시점엔 Firefox, Chrome, Edge, Safari에서만 지원, IE에서는 지원이 안됐음)
3. 문자형
- Js 에서는 문자열을 따옴표(" ")로 묶음
- 세 가지 종류
1) 큰 따옴표 : "Hello"
2) 작은 따옴표 : 'Hello'
3) 역따옴표(백틱, backtick) : `Hello`
- 큰 따옴표와 작은 따옴표는 '기본적인' 따옴표로, Js에서는 이 둘의 차이가 없음
- 역따옴표 : 변수나 표현식을 문자열 중간에 넣기 편함 ( ${...} 로 감싸서 넣으면 됨)
let name = "John"; // 변수를 문자열 중간에 삽입 alert( `Hello, ${name}!` ); // Hello, John! // 표현식을 문자열 중간에 삽입 alert( `the result is ${1 + 2}` ); // the result is 3
- 글자형은 따로 없음.
4. 불린형
- 값 : true, false
- 비교결과를 저장할 때도 사용됨
let isGreater = 4 > 1; alert( isGreater ); // true (비교 결과: "yes")
5. null 값
- 지금까지 나온 자료형 중 어느 자료형에도 속하지 않는 값
- null 값은 오로지 null 값만 포함하는 별도의 자료형을 만듦.
- Js 의 null : 존재하지 않는 값, 비어 있는 값, 알 수 없는 값
6. undefined 값
- null 값 처럼 자신만의 자료형을 형성
- 값이 할당되지 않은 상태
- 변수는 선언했지만, 겂을 할당하지 않았을시 해당 변수에 undefined 가 자동으로 할당됨
- undefined 를 직접 할당하는 걸 권장하지는 않음. 변수가 비어있거나 알 수 없는 상태라는 걸 알려주려면 null 사용하기
undefined 는 값이 할당되지 않은 변수의 초기값을 위해 예약어로 남겨두자
7. 객체와 심볼
- 객체 : 데이터 컬렉션이나 복잡한 개체를 표현할 수 있음
( <-> 원시 자료형 : 문자열이든 숫자든 한 가지만 표현 가능)
- 심볼형 : 객체의 고유한 식별자를 만들 때 사용함.
8. typeof 연산자
- 인수의 자료형을 반환해줌
// 연산자: typeof x // 함수: typeof(x)
괄호가 있든 없든 결과는 동일함
'이노베이션캠프 > 사전캠프: Js 공부' 카테고리의 다른 글
Part 01. Hello world : 변수와 상수 (0) 2023.05.12 Part 01. Hello world : 자료와 변수 (0) 2023.05.12 Part 01. Hello world : 변수? 표현식? 문? (0) 2023.05.11 Part 01. Hello world : 엄격모드 (0) 2023.05.11 Part 01. Hello world : 코드구조 (0) 2023.05.11