[javascript] Javascript! instanceof If 문

이것은 실제로 내 호기심을 만족시키기위한 기본적인 질문이지만 다음과 같은 방법이 있습니다.

if(obj !instanceof Array) {
    //The object is not an instance of Array
} else {
    //The object is an instance of Array
}

여기서 중요한 것은 NOT! 인스턴스 앞에서. 일반적으로이 설정 방법은 다음과 같습니다.

if(obj instanceof Array) {
    //Do nothing here
} else {
    //The object is not an instance of Array
    //Perform actions!
}

그리고 객체가 특정 유형인지 알고 싶을 때 else 문을 작성 해야하는 것은 약간 성가신 일입니다.



답변

괄호로 묶고 외부를 부정하십시오.

if(!(obj instanceof Array)) {
    //...
}

이 경우 우선 순위가 중요합니다 ( https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence ). ! 연산자가 instanceof 연산자 앞에옵니다.


답변

if (!(obj instanceof Array)) {
    // do something
}

다른 사람들이 이미 대답했듯이 이것을 확인하는 올바른 방법입니다. 제안 된 다른 두 가지 전술은 효과가 없으며 이해해야합니다 …

!대괄호가없는 운전자 의 경우 .

if (!obj instanceof Array) {
    // do something
}

이 경우 우선 순위가 중요합니다 ( https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence ). !운전자는 선행 instanceof연산자. 따라서 먼저 !obj평가됩니다 false(와 동일 함 ! Boolean(obj)). 그렇다면 당신 false instanceof Array은 분명히 부정적 인지 여부를 테스트하고 있습니다.

의 경우 !전과 연산자 instanceof연산자.

if (obj !instanceof Array) {
    // do something
}

이것은 구문 오류입니다. 이러한 운영자는 !=등호에 적용되지는 대조적으로, 하나의 연산자이다. 연산자가없는 것과 !instanceof같은 방식으로 !<연산자 가 없습니다 .


답변

괄호 (괄호)를 잊어 버리면 다음과 같은 습관을 들일 수 있습니다.

if(obj instanceof Array === false) {
    //The object is not an instance of Array
}

또는

if(false === obj instanceof Array) {
    //The object is not an instance of Array
}

여기 사용해보십시오


답변