자바스크립트의 자료형
기본자료형
자바스크립트에서는 undifined, null 등을 제외한 숫자, 문자열, 불을 기본 자료형이라고 한다.
기본 자료형은 객체가 아니므로 속성을 가질 수 없다.
기본 자료형을 객체로 선언
const 객체 = new 객체 자료형 이름()
new Number(10)
new String('안녕하세요')
new Boolean(true)
기본 자료형의 일시적 승급
자바스크립트는 편리성을 위해 기본 자료형 뒤에 온점을 찍으면 일시적으로 기본 자료형을 객체로 승급시킨다.
하지만 이러한 승급은 일시적이다.
const h = '안녕하세요'
h.sample = 10 // 일시적으로 객체로 승급되어 sample 속성을 추가
h.sample // 일시적으로 승급된 속성이 사라짐
프로토타입으로 메소드 추가하기
prototype 객체에 속성과 메소드를 추가하면 모든 객체에서 해당 속성과 메소드를 사용할 수 있다.
객체 자료형 이름.prototype.메소드 이름 = function () {}
예를 들어 Number.prototype에 sample이라는 속성을 추가하면 기본 자료형 숫자 뒤에 온점을 찍고 해당 속성을 활용할 수 있다.
Number.prototype.sample = 10
>10
const i = 273
>undefined
i.sample
>10
Number.prototype.power = function (n = 2) {
return this.valueOf() ** 2
}
const a = 12
console.log('a.power():', a.power())
console.log('a.power(3):', a.power())
console.log('a.power(4):', a.power())
//실행
a.power(): 144
a.power(3): 1728
a.power(4): 20736
예제
indexOf() 메소드 활용
문자열 내부에 문자열 검색. 있으면 해당 문자열 인덱스 출력, 없으면 -1 출력
const j : '안녕하세요'
j.indexOf('안녕')
0
j.indexOf('하세')
2
j.indexOf('없는 문자열')
-1
배열도 마찬가지로 작동
const k = [1, 2, 3]
k.indexOf(2)
1
k.indexOf(3)
2
k.indexOf(100)
-1
보충
"문자열.indexOf(문자열) >= 0" 등의 코드를 사용하면 문자열 내부에 어떤 문자열이 포함되어 있는지 true 또는 false로 얻을 수 있다.
Number 객체
- 숫자 N번째 자릿수까지 출력하기: toFixed(N)
String 객체
- 문자열 양쪽 끝의 공백 없애기: trim()
- 문자열을 특정 기호로 자르기: split()
JSON 객체
JSON은 JavaScript Object Notation의 약자로 자바스크립트의 객체처럼 자료를 표현하는 방식이다.
배열과 객체를 활용해 어떤 자료를 표현하는 형식. JSON형식에는 약간의 규칙이 있다.
- 값을 표현할 때는 문자열, 숫자, 불 자료형만 사용할 수 있다.(함수등은 사용 불가)
- 문자열은 반드시 큰따옴표로 만들어야 한다.
- 키에도 반드시 따옴표를 붙여야 한다.
자바스크립트 객체를 JSON 문자열로 변환할 때는 JSON.stringify()메소드를 사용한다.
JSON.stringify(객체, null, 2)
- 두번째 매개변수는 객체에서 어떤 속성만 선택해서 추출하고 싶을 때 사용하나 거의 사용하지 않으며,
일반적으로 null을 넣는다. - 세번째 매개변수는 들여쓰기 설정 값이다.
JSON 문자열을 자바스크립트 객체로 전개할 때는 JSON.parser() 메소드를 사용한다.
매개변수에 JSON 형식의 문자열을 넣어주면 된다.
예시
const data = [{
name: 'bob',
age: 35
}, {
name: 'john',
age: 33
}]
const json = JSON.stringify(data)
console.log(json)
console.log(JSON.parse(json))
//출력
[{"name":"bob","age":35},{"name":"john","age":33}]
[ { name: 'bob', age: 35 }, { name: 'john', age: 33 } ]
Math 객체
수학과 관련된 기본적인 연산을 할 때는 Math 객체를 사용한다. Math 객체 속성으로는 pi, e와 같은 수학 상수가 있다. 메소드로는 Math.sin(), Math.cos(), Math.tan()와 같은 삼각함수도 있다.
키워드 정리
- 실체가 있는 것 중에서 객체가 아닌 것을 기본 자료형이라고 하며, 숫자, 문자열, 불이 대표적 예이다.
- 객체를 기반으로 하는 자료형을 객체 자료형이라고 하며, new 키워드를 활용해서 생성한다.
- 기본 자료형의 승급이란 기본 자료형이 일시적으로 객체 자료형으로 변화하는 것을 의미한다.
- prototype 객체란 객체의 틀을 의미하며, 이곳에 속성과 메소드를 추가하면 해당 객체 전체에서 사용할 수 있다.
Q1.
const num = new Number(52000)
num.원 = function () {
return this.valueOf() + '원'
}
console.log(num.원())
//num은 기본자료형 이므로 객체로 선언해줘야한다
Q2.
printLang("ko"): 한국어
printLang("en"): 영어
Q3.
const degree = 90
const ms = Math.sin(degree*Math.PI / 180)
console.log(ms)
Q4.
const orderby = _.orderby(books, ["name"], ["asc"]);
console.log(orderby)
'Development > JavaScript' 카테고리의 다른 글
배열 메서드_요약 (0) | 2023.03.15 |
---|---|
JS기초_5.3(객체와 배열 고급) (0) | 2023.03.11 |
JS기초_5.1(객체기본) (0) | 2023.03.10 |
JS기초_4.2(함수 고급) (0) | 2023.03.09 |
JS기초_4.1(함수기초) (0) | 2023.03.09 |