JS에는 값을 가질 수 있는 5가지의 각기 다른 데이터 Type이 있다:
string
number
boolean
object
function
6가자의 객체 Type이 있다:
Object
Date
Array
String
Number
Boolean
그리고,값을 가질 수 없는 2가지의 데이터 Type이 있다:
null
undefined
typeof
연산자를 사용하여 JavaScript 변수의 데이터 유형을 찾을 수 있다.
아래 내용을 기억하자.
NaN
의 데이터 유형은 숫자다.Array
의 데이터 유형은 객체다.date
의 데이터 유형은 객체다.null
의 데이터 유형은 객체다.- 정의되지 않은 변수의 데이터 유형(undefined)은 정의되지 않음(undefined)이다.
- 값이 할당되지 않은 변수의 데이터 유형도 정의되지 않음(undefined)이다.
기본 데이터 값은 추가 속성 및 메서드가 없는 단일 단순 데이터 값이다.
typeof
연산자는 다음 기본 유형 중 하나를 반환할 수 있다.
string
number
boolean
undefined
typeof
연산자는 두 가지 복합 유형 중 하나를 반환할 수 있다:
function
object
typeof
연산자는 objects, arrays 및 null에 대해 "object"를 반환한다.
typeof
연산자는 함수에 대해 "object"를 반환하지 않는다.
JavaScript에서 배열은 객체이기 때문에
typeof
연산자는 배열에 대해 "object"를 반환한다.
typeof
연산자는 변수가 아니다. 하나의 연산자이다. 연산자( + - * / )는 데이터 유형이 없다.
그러나 typeof
연산자는 항상 string(피연산자의 유형 포함)을 반환한다.
constructor
속성은 모든 JavaScript 변수에 대한 생성자 함수를 반환한다.
constructor
속성을 확인하여 객체가 Array
("Array"이라는 단어 포함)인지 확인할 수 있다.<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrays</h2>
<p>This "home made" isArray() function returns true when used on an array:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple"];
document.getElementById("demo").innerHTML = isArray(fruits);
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array Object</h2>
<p>This "home made" isArray() function returns true when used on an array:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = isArray(fruits);
function isArray(myArray) {
return myArray.constructor === Array;
}
</script>
</body>
</html>
consturctor
속성을 확인하여 객체가 Date("Date"라는 단어 포함)인지 확인할 수 있다.JS에서 값이 없는 변수는 정의되지 않은 값(undefined)을 가진다. 유형도 정의되지 않는다.
값을 undefined
로 설정하여 모든 변수를 비울 수 있다. 유형도 정의되지 않는(undefined)다.
빈 값은undefined
와 아무 관련이 없다.
빈 문자열에는 유효한 값과 유형이 모두 있다.
JavaScript에서 null
은 "nothing"이다. 존재하지 않는 존재라고 봐야 합니다.
불행히도 JavaScript에서 null
데이터 유형은 객체다.
typeof null
이 객체라는 것은 JavaScript의 버그라고 생각할 수 있다. 응당null
이어야 합니다.
null
로 설정하여 객체를 비울 수 있다:
undefined
으로 설정하여 객체를 비울 수도 있다.
undefined
와 null
은 값이 같지만 유형이 다르다.