변수의 타입은 크게 원시타입, 객체타입으로 나누어지며 다양한 데이터를 용도에 맞게 쓰기 위해서 사용한다.
* 타입체크는 typeof라는 함수보다는 Object.prototype.toString.call 함수를 사용하자!
📌 원시타입 (Primitive Types)
- 실제 데이터 값을 저장하는 타입
- 가리키고 있는 값의 변경이 불가능하다. (= 불변 immutable)
- 콜스택에 저장된다.
let a = 'HELLO';
console.log(a[0]); // H
a[1] = 'J';
console.log(a[1]); // E. J로 바뀌지 않는다
1. String (문자형 데이터)
- ' ' (작은따옴표) 혹은 " " (큰 따옴표)를 사용해 문자를 나타낸다.
- 순서가 있고(이 순서를 index라고 한다) 0번부터 시작하며 띄어쓰기도 문자로 취급한다.
- length라는 속성이 있다. length 속성을 통해 문자열의 길이를 구할 수 있다.
let myName = "Dayoung"
console.log(myName.length); // 7
- 문자열은 + 연산자로 연결될 수 있다.
- 문자열 메서드
* indexOf() : 문자열 안의 특정한 문자를 검색해 문자의 순서(index)를 반환한다.
검색할 문자와 검색을 시작할 인덱스 번호 두 가지를 인자로 전달.
* replace() : 문자열에서 일치하는 첫번째 문자열을 찾고, 대체해 새로운 문자열을 반환한다.
첫 번째는 찾아야하는 문자열, 두 번째 인자는 대체할 값을 인자로 전달.
* slice() : 문자열의 일부분을 복사하여(썰어서) 새로운 문자열을 반환한다.
시작 인덱스와 종료 인덱스를 인자로 전달.
참고: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String
2. Number (숫자형 데이터)
- 숫자는 여러가지 연산이 가능하다.
//산술 연산자(arithmetic operator)
console.log(1 + 2)
console.log(12 * 7)
console.log(7 / 9)
console.log(7 % 5) //나머지값
// 할당 연산자(assignment operator)
let a = 2
a = a + 1
a += 1
a = a - 1
a -= 1
a = a % 1
a %= 1
// 비교 연산자(comparison operator)
const b = 1
const c = 1
console.log(b === c) // b와 c가 같은 지 비교해줌
// 일치연산자
function isEqual(x, y) {
return x === y
}
console.log(isEqual(1, 1)) //true
console.log(isEqual(2, '2')) //false
참고: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number
3. Boolean (논리자료형)
- 1byte (비트는 전구. on off만 있음. 0과 1만 존재)
- true 혹은 false 값을 반환
// 관계연산자: 두 개의 값을 비교하여 true 또는 false 값을 반환
let x = 5;
let y = 10;
let z = 5;
console.log(x > y); // false
console.log(x < y); // true
console.log(x >= z); // true
// 논리 연산자(logical operator)
const a = 1 === 1
const b = 'AB' === 'AB'
const c = true
console.log(a)
console.log(b)
console.log(c)
console.log('&&: ', a && b && c)
//콘솔에 출력하는 내용이 많아지면 '&&: ', 처럼 구분가능한 문자로 콘솔에 출력되는 log를 관리해줌.
// * AND 연산자 : 모든 값이 true이어야 함. 하나라도 false값이 있으면 결론은 false가 됨.
console.log('||: ', a || b)
// * OR 연산자 : 하나라도 true값이 있으면 결론은 true가 됨.
console.log('!: ', !a)
// * NOT 연산자 : 특정한 데이터의 반대값이 출력됨. a가 true => false, a가 false => true 출력.
💡 NOT연산자를 2번 써주면(!!) Boolean 타입이 되어서 true인지 false인지 확인할 수 있다.
(!!a && true) 이런식으로 써주는 것을 권장
4. undefined
- 변수 값이 할당되지 않은 경우.
- 변수에 어떤 값도 할당되지 않았거나, 정의되지 않은 변수에 접근하려 할 때 undefined가 반환.
- 자바스크립트가 비어있다고 정의하는 것.
let a;
console.log(a); // undefined
5. null
- 값이 없음을 나타낸다.
- 개발자가 의도적으로 비어있다고 정의하는 것.
- null을 사용해 변수에 값을 지정하지 않도록 초기화 할 수 있다.
'TIL archiving ···.ᐟ > JavaScript + TypeScript' 카테고리의 다른 글
[노트내용정리] 함수 (Function) (0) | 2024.08.28 |
---|---|
[노트내용정리] 변수의 타입 - 객체타입 (0) | 2024.08.28 |
[노트내용정리] 변수 (0) | 2024.08.27 |
[노트내용정리] BOM & DOM (0) | 2024.08.20 |
[노트내용정리] JavaScript의 기초 (0) | 2024.08.19 |