320x100
반응형
원시자료형
원시값(문자열, 숫자 등)을 마치 객체처럼 다룰 수 있게 해주며 .원시값에도 객체에서처럼 메서드를 호출할 수 있다 그 전에, 원시값은 객체가 아니면서 method를 가지지 않는 6가지의 타입이다
- 원시형 값입니다.
- 원시형의 종류는 문자(string), 숫자(number), bigint, 불린(boolean), 심볼(symbol), null, undefined형으로 총 일곱 가지 입이다.
- string, number, bigint, boolean, undefined, symbol, (null)
- 원시 자료형의 보관함인 변수에는 하나의 데이터만 담을 수 있다.
"hello world!"
"hello codestates!"
=>"hello world!" 와 "hello codestates!"는 모두 변경할 수 없는 고정된 값입니다.
let word = "hello world!"
word = "hello codestates!"
=> 하지만, word라는 변수에 재할당을 하여 변수에 담긴 내용을 변경하는 것은 가능합니다.
const num1 = 123;
num1 = 123456789; // 에러 발생
=> const 키워드로 선언하면, 재할당은 불가합니다.
let a = 1;
b=a; //데이터를 복사할 경우
b=2;
a; =>1, ★기존의 데이터에 영향이 가지 않는다
참조 자료형
- 원시 자료형이 아닌 모든 것은 참조 자료형. 배열([])과 객체({}), 함수(function(){})가 대표적
- 참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장(reference data type).
- 하나의 주제는 있지만 분명 서로 다르고, 여러 개의 데이터를 가지고 있다.
- 동적으로 크기가 변하는 특별한 보관함을 사용
let x = { foo: 3 };
let y = x;
y.foo = 2;
코드가 실행된 후, x.foo의 값 :2
=>x와 변수 y에 모두 같은 { foo : 3 } 이라는 객체의 주소를 바라보고
y.foo = 2, 값이 3이었던 y.foo에 2를 할당을현재는 같은 주소를 바라보고 있는
y.foo가 2로 변경이 되었으니, 같은 곳을 바라보고 있었던 x.foo도 2가 되어야 한다
let myArray = [2, 3, 4, 5];
let ourArray = myArray;
ourArray[2] = 25;
ourArray = undefined;
코드가 실행된 후, myArray의 값 :[2, 3, 25, 5]
=>변수 ourArray에 myArray의 주소값이 할당,ourArray 주소값에 위치한 배열의 2번째 요소를 25로 변경
ourArray와 myArray의 주소값은 같음으로 현재 myArray는 [2, 3, 25, 5]
이제 변수 ourArray에 원시 자료형 undefined가 할당되었기 때문에, myArray에 접근할 수 없다
하지만 myArray는 그대로 [2, 3, 25, 5]
728x90
반응형
'Javascript' 카테고리의 다른 글
클로저 ★ (0) | 2022.09.06 |
---|---|
스코프 (0) | 2022.09.06 |
객체 (Object) (2) | 2022.09.05 |
배열의 매서드 (2) | 2022.09.02 |
문자열 (0) | 2022.08.25 |