2016-06-20 1 views
-5

真の条件を検証取り組んでいるが、</p> <p></p> <pre><code>if(variablename=='true') </code></pre> <p>下に真の条件を検証する際にJavaScriptでは

if(variablename==true) 

が機能していません。これの理由は何ですか?それはいくつかのブラウザに固有のものですか?

+4

ここで 'variablename'とは何ですか? – Frxstrem

+1

'true'!== true、 'true'はブール値ではない文字列であり、真実性をチェックするために使用すべきではありません。 –

+1

'true'とtrueは2つの異なるものです.1つは文字列であり、もう1つはブール値です。 –

答えて

-1

文字列とブール値はまったく同じではありません。空でない文字列はすべてtrue(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」の違いは、「真」と「真」の違いと似ていません。また、「空でない文字列はすべて真と等しい」と言っても間違いありません。私は、あなたが言うことを意味するものは、 "空でない文字列はブール値のコンテキスト(つまり '真実')では真であるとみなされるということです。 –

+0

私はそれらがいくつかの言語で異なっていることを意味しました。 –

関連する問題