728x90
반응형
SMALL
1. wrapper class 란❓
기본 타입에 해당하는 데이터를 객체로 포장해 주는 클래스
1-1. Primitive Tpyes(기본타입, 원시타입)
- string, number, bigint, boolean, undefined, symbol, null (8개)
- 기본 타입은 객체가 아니며, 메서드와 프로퍼티가 존재하지 않는 데이터
- 기본 타입은 프로퍼티와 메서드를 정의할 수 없음
- new 키워드를 사용하여 원시 타입을 래퍼 객체로 생성할 수 있지만, 주로 사용하는 방법은 아님
let a = 'apple' // 리터럴 표기
let b = new String('apple') // 객체형 표기
a === b //false
기본타입(원시타입) | 래퍼 클래스 |
string | String |
number | Number |
bigint | Bigint |
boolean | Boolean |
symbol | Symbol |
float | Float |
char | Character |
double | Double |
2. Boxing & Unboxing
- 래퍼 클래스(Wrapper class)는 산술 연산을 위해 정의된 클래스가 아니므로, 인스턴스에 저장된 값을 변경할 수 없음
- 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있음
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Wrapper class</title>
</head>
<body>
<h2>Wrapper class</h2>
<script>
const num = 10
console.log(typeof(num))
console.log(num.toString()) // wrapper class로 boxing
console.log(typeof(num.toString()))
console.log(typeof(num)) // 데이터의 타입이 직접 변하진 않음
//지수 표기법(10의 n승으로 표기)
const x1 = 102
console.log(x1.toExponential()) // 1.02 * 10^2
//반올림하여 문자열로 변환
const x2 = 1234.12
console.log(x2.toFixed())
console.log(typeof(x2.toFixed())) // string
//로컬형식의 문자형으로 변환
console.log(x2.toLocaleString('ar-EG')) // 아랍어
const x3 = 0.1 + 0.2 - 0.2
console.log(x3)
</script>
</body>
</html>
3. 동등 연산자( === )
- 기본 타입으로 생성된 변수와 new 키워드를 사용하여 명시적으로 생성된 객체는 서로 다른 타입
'JavaScript' === 'JavaScript' // true
'JavaScript' === new String('JavaScript') // false
10 === new Number(10) // false
let num1 = 10
let num2 = new Number(10)
num1 === num2 // false
참고 : http://www.tcpschool.com/java/java_api_wrapper
728x90
반응형
LIST
'Web > JavaScript' 카테고리의 다른 글
[JavaScript] 이벤트(Event) - 이벤트 타입(Event Type), 이벤트 타겟(Event Target), 이벤트 리스너(Event Listener), 이벤트 객체(Event Object) (0) | 2023.04.19 |
---|---|
[JavaScript] URL & URI - 정의, 차이점, URL의 이스케이프 처리와 디코딩 (0) | 2023.04.19 |
[JavaScript] 자바스크립트 객체 활용법 (0) | 2023.04.14 |
[JavaScript] 자바스크립트의 함수 메모리 할당 & 함수 작성 팁 (0) | 2023.04.14 |
[JavaScript] 정규 표현식으로 특정 패턴의 문자열 생성하기! (0) | 2023.04.12 |