가능한 중복 :
Why does (‘0’ ? ‘a’ : ‘b’) behave different than (‘0’ == true ? ‘a’ : ‘b’)Javascript에서 부울 평가 규칙이란 무엇입니까?
나는 현재 자바 스크립트를 배우고 지금까지 언어에 대해 기쁘게 생각하고 있습니다.
오늘 아침에 테스트를 작성할 때, 내가 뭔가를 깨달았다 내가 설명 할 수 없다 :
부울 표현식을 평가할 때, 우리는이 :
이// a && b returns b in case a && b are evaluated to true: OK
'2' && '3' => '3'
'3' && '2' => '2'
// a && b returns a in case a is evaluated to false, b otherwise: OK
false && '' => false
'' && false => ''
// '' and '0' are evaluated to false in a boolean context: OK
'' == false => true
'0' == false => true
// Here is the "problem":
'' && '0' => '' // To be expected: both operands evaluate to false
'0' && '' => '' // What ?!!
그래서 제 질문은 간단하다 : '0' && ''
수익을 수행하는 이유 ''
?
두 피연산자 모두 false로 평가 될 것으로 예상되지만 그 문맥은 '0'
인 것으로 보입니다. 왜 그렇습니까?
MDN은 좋은 설명을 제공하는 것 : https://developer.mozilla.org/en-US/docs/JavaScript/를 참조/연산자/Logical_Operators. 'Boolean ('0') == true '입니다. – Blender
@AndreKR : 그 질문은 실제로 내 대답입니다. 링크를 가져 주셔서 감사합니다. 너무 닫히기로 결정했다. – ereOn
[JavaScript 형식 변환 : (true && 1) vs (true | | 1)] (http://stackoverflow.com/questions/8559920/javascript-type-conversion-true-1-vs-true- 1) –