if (typeof operand1 != "undefined" && operand1 == operand2) {
}
위의 operand1 일부 시나리오 하에서 undefined
수있다 operand1 및 오퍼랜드 2 사이 어떤지를 확인하는 if
진술 정의 될 수있다. typeof operand1 != "undefined"
이 불필요한 것인지 궁금합니다.동등 비교되는 하나의 피연산자
if (typeof operand1 != "undefined" && operand1 == operand2) {
}
위의 operand1 일부 시나리오 하에서 undefined
수있다 operand1 및 오퍼랜드 2 사이 어떤지를 확인하는 if
진술 정의 될 수있다. typeof operand1 != "undefined"
이 불필요한 것인지 궁금합니다.동등 비교되는 하나의 피연산자
===
연산자가 아닌 ==
연산자를 사용하므로 operand2
이 결코 null
이되지 않는 경우에만 불필요합니다.
하지만 operand2
의미 만있는 경우 operand2
이 operand1
에 "진짜 같다"통과 할 ===
연산자를 사용하는 if statement
을 변경할 수 있습니다뿐만 아니라 undefined
입니다.
당신은 여기에 대한 자세한 내용을보실 수 있습니다 :
Which equals operator (== vs ===) should be used in JavaScript comparisons?
여기에 기록 된 것을 보여주는 fiddle. Data Base
세계에서
null
(또는
undefined
)는 무엇과 비교할 수 없음을 의미 아무것도 없다.
SQL 예 : 아무것도 null로 동일하지 않으며, 널 아무것도 동일하지 않기 때문에
SELECT *
FROM table_name t
Where t.operand1 = null
이 오류가 발생, 그냥 존재하지 않습니다. javascript
에서
은 당신이 null
및 undefined
에 일을 비교할 수 있습니다, 그처럼되지 않습니다,하지만 당신은 이와 같은 TypeError
들과 조심해야 :
var x;
x.foo; // TypeError!
내가했던 유일한 시간을 두 변수의 값의 동일성을 검사하기 전에 typeof
점검을 수행해야한다고 말하면 중 하나가 정의되지 않아서 ReferenceError
을 방지 할 수 있습니다.
@gouron 나는 '정의되지 않았다'고 말하지 않았고, 정의되지 않았다. *와 같이 범위 체인에'operand1'이라는 변수가 없다. – alex
답변 해 주셔서 감사합니다. 당신은 좋은 지적을 제기했습니다. 나는 하나 이상의 답을 받아 들일 수만 있다면 좋겠다. – tamakisquare
바이올린에 오타가 있다고 생각합니다.'typeof operand1! = "undefined"가 존재하더라도 여전히 ReferenceError가 발생합니다. – tamakisquare
마지막 예가 잘못되었습니다. 'TypeError'가 될 것입니다. 왜냐하면'undefined'는 속성을 가질 수 없기 때문입니다. – alex
@alex. 내 잘못, 고마워. 고마워. – gdoron
@ gdoron "operand2가 절대로 거짓 값이 아닐 경우에만 불필요합니다"라는 의미에 대해 자세히 설명해 주실 수 있습니까? operand2는 위조 된 값일 수 있습니다. 'typeof operand1! = "undefined"'가 필요한 예제를보고 싶습니다. Thx – tamakisquare