2016-06-20 3 views
-5

을 확인할 때이 동작 되나자바 스크립트에서 진정한 조건

if(variablename==true) 

가 작동하지 않습니다. 이것에 대한 이유가 있습니까? 일부 브라우저에만 해당되는가요?

+4

여기에'variablename'이란 무엇입니까? – Frxstrem

+1

'true'! == true, 'true'는 부울이 아닌 문자열이며 진실성을 확인하는 데 사용하면 안됩니다. –

+1

'true'와 true는 두 가지입니다. 하나는 문자열이고 다른 하나는 부울입니다. –

답변

-1

문자열과 부울은 전혀 다릅니다. 비어 있지 않은 문자열은 모두 참 (How can I convert a string to boolean in JavaScript?)과 같습니다. variablename의 유형을 판별하고 적절한 비교를 구현해야합니다.

'true'와 true 사이의 차이는 '3'과 3 또는 3.0과 3 사이의 차이와 유사합니다. 많은 경우 그들은 "작동"합니다. 이러한 가정과 암시 적 강제 변환을 사용하는 것은 안전하지 않으며 결국 문제를 일으킬 수 있습니다.

암시 적 변환을 지원하는 JavaScript와 같은 언어는 많은 로프를 제공합니다. 그것으로 너 자신을 걸지 않는 것은 당신에게 달려있다.

+2

'3.0'과'3'은 어떻게 다른가요? 아니요, '3'과 '3'의 차이점은 ''사실 ''과 ''진실 ''의 차이와 비슷하지 않습니다. "비어 있지 않은 문자열은 모두 true와 동등합니다"라고 말하는 것이 옳지 않습니다. 당신이 말하고자하는 것은 "비어 있지 않은 문자열은 불리언 문맥 (사실, 'truthy')에서 참이라고 여겨진다는 것입니다. –

+0

나는 그들이 다른 언어로되어 있다는 것을 의미했다. –

관련 문제