[JavaScript] Type

마이제이·2021년 9월 30일
0

JS

목록 보기
1/2

CHAPTER 1. 타입(Types)


JavaScript에는 7가지 내장 타입(null, undefined, boolean, number, string, object, symbol)이 있으며, typeof 연산자로 타입명을 알아낸다.

변수(Variables)는 타입이 없지만 값(Values)은 타입이 있고, 타입(Types)은 값의 내재된 특성을 정의한다.

undefinedundeclared가 대충 같다고 보는 경우가 많은데, JavaScript 엔진은 둘을 전혀 다르게 취급한다.

undefined는 선언된 변수에 할당할 수 있는 값이지만, undeclared는 변수 자체가 선언된 적이 없음을 나타낸다.

하지만 JavaScript는 이 두 용어를 대충 섞어버려, 에러 메세지뿐만 아니라 typeof 변환 값도 undefined로 나타낸다.

그래도 typeof 안전 가드(Safety guard on typeof) 덕분에, 선언되지 않은 변수에 사용하면 유용하다.


Q1. JavaScript에서 7가지 내장 타입을 나열해보시오.

A1. null / undefined / boolean / number / string / object / symbol


Q2. JavaScript에서 ( a )는 선언된 변수에 할당할 수 있는 값이지만, ( b )는 변수 자체가 선언된 적이 없음을 나타낸다.

A2. (a) undefined (b) undeclared


CHAPTER 2. 값(Values)


배열 인덱스는 숫자인데,

배열 자체도 하나의 객체여서 키 / 프로퍼티 문자열을 추가할 수 있다.

하지만 배열 length가 증가하지는 않는다.

var a = [];

a["13"] = 42;

a.length; // 14
var a = [];

a["13"] = 42;

a.length; // 14

정리


JavaScript 배열은 모든 타입의 값들을 숫자로 인덱싱한 집합이다.

문자열은 일종의 유사 배열이지만, 나름 특성이 있기 때문에 배열로 다루고자 할 때에는 조심하는 것이 좋다.

JavaScript 숫자는 정수부동 소수점 숫자 모두 포함된다.


원시 타입에는 몇몇 특수 값이 있다.

null 타입은 null이란 값 하나뿐이고, 마찬가지로 undefined 타입도 값은 undefined 뿐이다.

undefined는 할당된 값이 없다면 모든 변수 / 프로퍼티의 디폴트 값이다.

void 연산자는 어떤 값이라도 undefined로 만들어 버린다.


숫자에는 NaN(유효하지 않은 숫자), +Infinity, -Infinity, -0 같은 특수 값이 있다.


단순 스칼라 원시 값(문자열, 숫자 등)은 값-복사에 의해, 합성 값(객체 등)은 레퍼런스-복사에 의해 값이 할당/전달된다.

자바스크립트에서의 레퍼런스는 다른 언어의 레퍼런스 / 포인터와는 전혀 다른 개념으로, 또 다른 변수 / 레퍼런스가 아닌 오직 자신의 값만을 가리킨다.

profile
studylog

0개의 댓글