07.3. typeof, 지수, 그 외의 연산자
typeof, Exponent, other
typeof 연산자
typeof
연산자는 피연산자의 데이터 타입을 무자열로 반환한다. typeof
연산자는 7가지 문자열 string, boolean, undefined, symbol, object, function 중 하나를 반환한다. null
을 반환하는 경우가 없으며, null
의 경우 object
타입을 반환다. 함수의 경우 function을 반환한다.
Key Point💡
typeof 연산자가 반환하는 문자열은 7개의 데이터 타입과 정확히 일치하지 않는다.
typeof
연산자로 null
값을 연산해보면 null
이 아닌, object
를 반환하는 데 주의해야합니다. 이것은 자바스크립트의 첫 번째 버전의 버그입니다. 하지만, 기존 코드에 영향을 줄 수 있기 때문에 아직까지 수정되지 못하고 있습니다.
Key Point💡
값이
null
타입인지 확인할 때는typeof
연산자를 사용하지 말고 일치 연산자(===
)를 사용하는 것이 좋습니다.
주의💡
선언하지 않은 식별자를
typeof
연산자로 연산해 보면ReferenceError
가 발생하지 않고,undefined
를 반환합니다.
그렇다면 이것을 어떻게 사용하면 좋을까?
참고) 네이티브 코드(Native Code)
네이티브 코드
는 CPU와 운영체제가 직접적으로 실행할 수 있는 코드입니다. 보통 우리가 알고 있는 프로그래밍 언어들은 컴파일(Compile)
의 과정을 거쳐 운영체제가 실핼할 수 있는 기계어로 번역이 됩니다.
하지만 이러한 방식은 OS 및 HW환경이 달라지면 실행이 불가능해집니다. 네이티브 코드는 프로그래머가 직접 메모리를 할당하고, 해제해야하는 Native한 환경을 갖는 Code입니다. 이를 동적 할당
이라고 하는데, 네이티브 코드를 사용해서 OS에 종속되지 않게 프로그램을 하는 방법으로 사용하기도 합니다.
지수 연산자
ES7
에서 도입된 지수 연산자는 좌항의 피연산자를 밑으로, 우하으이 지수로 거듭 제곱하여 값을 반환합니다.
Key Point💡
지수 연산자를 도입하기 전에는
Math.pow
메서드를 사용했습니다.
Key Point💡
지수 연산자는
Math.pow
보다 가독성면에서 더 좋습니다.
주의💡
음수를 거듭 제곱의 밑으로 사용하려면 괄호로 묶어야 합니다.
지수 연산자는 다른 산술 연산자와 마찬가지로 할당 연산자와 함께 사용할 수 있습니다.
또한, 이항 연산자 중에서 우선순위가 가장 높습니다.
그 외의 연산자
?.
옵셔널 체이닝 연산자
??
null 병합 연산자
delete
프로퍼티 삭제
new
생성자 함수를 호출할 때 사용하여 인스턴스를 생성
instanceof
좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별
in
프로퍼티 존재 확인
요약
typeof
연산자는 7가지 문자열 string, boolean, undefined, symbol, object, function 중 하나를 반환한다.값이
null
타입인지 확인할 때는typeof
연산자를 사용하지 말고 일치 연산자(===
)를 사용하는 것이 좋습니다.선언하지 않은 식별자를
typeof
연산자로 연산해 보면ReferenceError
가 발생하지 않고,undefined
를 반환합니다.네이티브 코드를 사용해서 OS에 종속되지 않게 프로그램을 하는 방법으로 사용하기도 합니다.
지수 연산자는
Math.pow
보다 가독성면에서 더 좋습니다.
Last updated