배열 - 연산자, const, 중첩

99PERCENT·2022년 2월 18일
0

JavaScript

목록 보기
6/12

배열 - 삼중등호연산자 & 이중등호연산자의 역할

		‘hi’ === ‘hi’		// true
		[‘hi’] === [‘hi’]	// false
		[1,2,3] === [1,2,3]	// false
		[] === []			// false
		[] == []			// false
	Javascript는 배열 안에 있는 내용(콘텐츠)에 관심이 없다. 
	실제로 비교하는 건 메모리에서 참조되는 값이다.  
	Javascript에서 작성하는 숫자마다 할당되는 최대 메모리가 있다. 때문에 단순한 숫자는 메모리가 할당된 값이 같기 때문에 상관이 없지만, 배열은 다르다.

	배열의 저장방식은 약간 숫자와 다르다.
	배열은 안의 내용이 언제든 바뀔 수 있고, 얼마나 공간을 차지할 줄 모르기 때문에 배열은 참조(reference)를 갖는다.
	배열은 집 주소나 민증처럼 작용한다고 보면 된다. 배열의 고유한 주소인 참조를 갖는 것이다. 
	[1,2,3] === [1,2,3] 
	왼쪽의 배열과 오른쪽의 배열은 다른 고유한 주소를 갖고 있다고 보면 된다.

	let nums = [1, 2, 3];
	let numsCopy = nums;

	num === numsCopy;	// true, 변수의 배열이 둘 다 같은 참조를 갖기 때문에.

	결론) 이중등호와 삼중등호로 메모리의 참조(레퍼런스)를 확인할 수 있다. 

배열 & const

	const는 값이 바뀔 수 없을 때 사용한다. 원주율 등…
	배열은 고유의 주소(참조, 레퍼런스)를 갖는다. 컨텐츠의 내용이 바뀌어도 고유값은 그대로이다.
	따라서 배열에 const가 사용이 가능하다. 또한 배열의 콘텐츠(내용물)이 바뀌어도 상관없다! (변수 자체가 재할당되지 않기 때문!)
		const PI = 3.141592;
		PI =+ 1;	// error

		const order = [10, 20, 30];
		order.push(40);	// 10, 20, 30, 40
	결론) 배열은 고유의 주소값(할당된 값)이 있어서 내용물이 바뀌어도 주소값은 그대로이기 때문에 const를 사용할 수 있다. 또한 내용물이 같은 배열이라도 주소값이 다르다는 사실을 항상 인지해야 된다.
	추가) 객체또한 배열처럼 참조 타입이다.

다차원 배열

	배열 안에 다른 배열들을 저장 가능하다.
		let colors = [
			[‘red’, ‘crimson’],
			[‘orange’, ‘dark orange’].
			[‘yellow’, ‘golden rod’]
		]

		colors[1];		//	두 번째 배열 - [orange, dark orange] 
		colors[1][0];	//	두 번째 배열의 첫 번째 인덱스 - orange
	결론) 배열 안에 배열을 중첩할 수 있다. 
profile
99 ~ 100

0개의 댓글