2016-12-19 25 views
-5

私はコードは文字を識別することを可能にする方法を考案したい、私のコードは次のとおりです。コードが文字列内の数字や文字を正しく識別しないのはなぜですか?

var thingToTest = "Some Random String" 
var thing = thingToTest.charAt(0); 
if (thing = "some random letter that isn't in the code") { 
    alert("This should not come up..."); 
}; 

ただし、アラートは常に文字が正しいものであるかどうかを、ポップアップ表示されます。私はすべてのソフトウェアを更新してコンピュータを再起動しましたが、うまくいかないのです。私は何か間違っていると確信していますが、私はそれが何であるか分かりません。私はそれを理解しようと多くの時間を費やしました。あなたはif句内の割り当てではなく、平等性チェックを実行しているあなたの例では

var thingToTest = "Some Random String" 
var thing = thingToTest.charAt(0); 
if (thing === "some random letter that isn't in the code") { 
//  ^^^ 
    alert("This _will not_ come up..."); 
}; 

______

+6

'=' VS '=='(再び!)。 – Biffen

+0

'thing = ...'のみで '='は変数を代入しますが、それはそれを比較しません。 –

+0

thing = "string"は "thing == string"にする必要があります – Roberrrt

答えて

4

使用==または=== JavaScriptで平等のチェックを実行します。

割り当ては、右側の式で評価されます。したがって、if句は"some random letter that isn't in the code"に解決されます。これは真実です。したがって、if句の本文が実行されます。

1

=は代入演算子です。

例えば:

var a = 5; 

=====は、比較演算子である、==は、両方の変数の値のみを確認することができます。

例えば:

if(a == 5){ 
    //success statements 
} 

しかし===は、両方の変数の両方の値とデータ型を確認することができます。

例えば:

if(a === 5){ // it will check typeof(a) == typeof(RHS value) 
    //success statements 
} 
関連する問題