이것은 실제로 내 호기심을 만족시키기위한 기본적인 질문이지만 다음과 같은 방법이 있습니다.
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
}
여기 사용해보십시오