1. 변수와 상수
변수
let message;
message = 'Hello!';
상수
const myBirthday = '18.04.1982';
2. 자료형
숫자형(number type)
let n = 123;
n = 12.345;
특수 숫자 값(special numeric value)
- Infinity : 어떤 숫자보다 더 큰 특수 값, 무한대(∞)
- -Infinity
- NaN : 계산 중에 에러가 발생했다는 것을 나타내주는 값
BigInt
- 숫자형은 (253-1)(9007199254740991) 보다 큰 값 혹은 -(253-1) 보다 작은 정수를 나타낼 수 없음
- 그런 경우네는 BigInt를 사용해야함
- 정수 리터럴 끝에 n을 붙임
const bigInt = 1234567890123456789012345678901234567890n;
문자열(string)
- 기본적으로 큰따옴표(")과 작은따옴표(')를 이용
- 역 따옴표(`)를 이용하면 표현식을 문자열에 넣을수있음
let name = "John";
alert( `Hello, ${name}!` );
논리형(Boolean Type)
- true와 false 두 가지 값밖에 없는 자료형
let nameFieldChecked = true;
let ageFieldChecked = false;
null 값
- 어느 자료형에도 속하지 않는 값
- null 값만 포함하는 별도의 자료형
undefined 값
- null 값처럼 자신만의 자료형을 형성
- 값이 할당되지 않은 상태’를 나타낼 때 사용
let age;
alert(age);
객체(object)
- 객체형을 제외한 다른 자료형은 문자열이든 숫자든 한 가지만 표현할 수 있기 때문에 원시(primitive) 자료형
- 객체는 데이터 컬렉션이나 복잡한 개체(entity) 표현 가능
심볼(symbol)
- 객체의 고유한 식별자(unique identifier)를 만들 때 사용
typeof 연산자
- 인수의 자료형을 반환
- 연산자: typeof x
- 함수: typeof(x)
typeof undefined
typeof 0
typeof 10n
typeof true
typeof "foo"
typeof Symbol("id")
typeof Math
typeof null
typeof alert
- Math는 수학 연산을 제공하는 내장 객체이므로 "object"
- null은 객체가 아니지만, 하위 호환성을 유지하기 위해
- 함수는 객체형에 속함. 자료형은 아니지만 하위 호환성 유지를 위해
3. 형변환
문자형으로 변환
- alert메서드는 매개변수로 문자형을 받음
- 만약, 다른 형의 값을 전달받으면 이 값은 문자형으로 자동 변환됨
let value = true;
alert(typeof value);
숫자형으로 변환
alert( "6" / "2" );
- Number(value) 함수를 사용하면 주어진 값(value)을 숫자형으로 명시해서 변환
let str = "123";
alert(typeof str);
let num = Number(str);
- 단, 숫자 이외의 글자가 들어가 있는 문자열을 숫자형으로 변환하려고 하면, 그 결과는 NaN이 됨
let age = Number("임의의 문자열 123");
alert(age);
전달받은 값 | 형 변환 후 |
---|
undefined | NaN |
null | 0 |
true and false | 1 과 0 |
string | 문자열의 처음과 끝 공백 제거됨. 공백 제거 후 남아있는 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽음. 변환에 실패하면 NaN |
불린형으로 변환
- 숫자 0, 빈 문자열, null, undefined, NaN과 같이 직관적으로도 “비어있다고” 느껴지는 값들은 false가 됨
- 그 외의 값은 true로 변환됨
alert( Boolean(1) );
alert( Boolean(0) );
alert( Boolean("hello") );
alert( Boolean("") );
Reference
🔗 모던 JavaScript 튜토리얼