2011-10-04 4 views
9

に私はJavascriptをTRUEが定義または引用符

<car> 
    <id>123</id> 
    <sunroof>FALSE</sunroof> 
    <service>TRUE</service> 
</car> 

私は引用符の内側にTRUEラップ(service == "TRUE")

var service = tis.find("service").text(); 

if(service === TRUE){ 
    var service_tag = '<a title="Service" href="">Service</a>' 
} else { 
    var service_tag = ''; 
} 
+3

ブール値trueが設計どおりに動作しますが、 ''「TRUE」の文字列と異なっています –

答えて

24

引用符なしjavacriptは値/式としてTRUEを解釈しようとします。 javascriptにネイティブに定義された値はありません。TRUEtrueがありますが、javascriptは大文字と小文字が区別されるため、TRUEtrueにはバインドされません。

text()から返される値はstringプリミティブです。 "TRUE"を書くと、値service

1

そのため、胃袋が等しいが、たとえば場合は、次のコードは、のみ動作を含むXMLファイルを持っていませんタイプもチェックし、TRUEの場合はTRUEを値とする

// this will work 
if(service === "TRUE"){ 
    var service_tag = '<a title="Service" href="">Service</a>' 
} else { 
    var service_tag = ''; 
} 

Difference between == and === in JavaScript

1

と首尾よく比較されるstring"TRUE"が返されます。

tis.find("service").text();は、ブール値ではなく文字列を返します。真理値のJavaScriptブール値はtrueです(これは他の言語と同様です)。

4

JavaScriptブールtruefalseは小文字です。

1
var service = tis.find("service").text(); 

これは文字列 "TRUE"を返します。 ===は型もチェックしているので、常にfalseを返します。

1

TRUEは、存在しないTRUEという名前の変数を参照するため、エラーが発生します。 "TRUE"は、文字「TRUE」を含む文字列です。変数serviceには文字列が含まれているので、2番目の文字列は必要なものです。

2

これに等しく設定サービスには、JavaScriptがお使いの値を解釈することができるようになりますので:

var service = tis.find("service").text().toLowerCase(); 
関連する問題