일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- rails7
- springboot
- vscode
- 디지몬
- html
- Flutter
- ruby
- jsp
- Spring
- Python
- 연습문제
- CSS
- 日本語
- Web
- 一日一つメソッド
- javascript
- メソッド
- C로 시작하는 컴퓨터 프로그래밍4판
- rails
- 자바
- 일본어
- 비즈니스일본어
- 건담
- 건담베이스
- java
- 単語
- DART
- nico
- 반다이몰
- 인프런
Archives
- Today
- Total
AR삽질러
JavaScript - 원시타입과 객체타입(16) 본문
728x90
JavaScript - 원시타입과 객체타입(16)
1. 원시타입(Primitive Type)과 객체타입(Object Type)
자료형
원시타입 : Number, String, Boolean, Null, Undefind
객체타입 : Object(Array, Function, RegexExp)
- JavaScript에서 값은 두가지로 나뉘며 두 타입은 메모리에서 값이 어떻게 저장되고 처리되는지에 차이가 있다.
2. 원시타입(Primitive Type)
- 원시타입은 변경할 수 없는 값을 나타내며, 메모리에 직접 저장되어 값 자체로써 변수에 저장되고 복사된다.
- 불변값으로 메모리 값 수정이 불가능
let a = 10;
let b = a;
b = 20;
console.log(a);
console.log(b);
3. 객체타입(Object Type)
- 참조 방식으로 저장되어 참조값을 통해서 변수에 저장되고 복사된다.
- 가변값으로 메모리 값 수정 가능
let obj1 = { name: "AR" };
console.log(obj1.name);
let obj2 = obj1;
obj2.name = "Arang";
console.log(obj1.name);
console.log(obj2.name);
- obj1과 obj2는 같은 객체를 참조하고 있기 때문에 obj2의 속성을 변경하면 obj1의 속성도 변경된다.
얕은 복사
- 객체의 참조값을 복사한다.
- 원복 객체가 수정될 수 있어 위험하다.
let o1 = {name: "AR"}
let o2 = 01;
깊은 복사
- 새로운 객체를 생성하면서 프로퍼티만 따로 복사한다.
- 원본 객체가 수정될 일이 없어 안전하다.
let o1 = {name: "AR"}
let 02 = {...o1};
728x90
반응형
LIST
'WEB > JavaScript' 카테고리의 다른 글
JavaScript - Date객체와 날짜(18) (0) | 2024.08.23 |
---|---|
JavaScript - 배열 메서드(17) (0) | 2024.08.22 |
JavaScript - Spread연산자와 Rest매개변수 (15) (0) | 2024.08.20 |
JavaScript - 구조분해할당(Destructuring Assignment) (14) (0) | 2024.08.20 |
JavaScript - 단락평가(Short-circuit Evaluation) (13) (0) | 2024.08.20 |