有沒有辦法比較JSLint中的字符串?JSLint錯誤:比較字符串時出現奇怪的關係
我寫了下面的代碼是通過JSLint的評價:
if(('SIVA') === 'SIVA'){
Result = 1000;
return;
}
上面的代碼適用於JavaScript,但我收到以下錯誤,當通過JSLint的評價:「奇怪的關係」
如何糾正這個問題?
有沒有辦法比較JSLint中的字符串?JSLint錯誤:比較字符串時出現奇怪的關係
我寫了下面的代碼是通過JSLint的評價:
if(('SIVA') === 'SIVA'){
Result = 1000;
return;
}
上面的代碼適用於JavaScript,但我收到以下錯誤,當通過JSLint的評價:「奇怪的關係」
如何糾正這個問題?
解決方案可能相當簡單。
您的後端代碼正在向JavaScript寫入一個字符串,對嗎?因此,而不是這樣的:
if(('SIVA') === 'SIVA') {
result_int = 1000;
return;
}
其中在後端看起來是這樣的:
if(('<%key_code%>') === 'SIVA') {
result_int = 1000;
return;
}
執行此操作在後臺模板:
var key_code = '<%key_code%>';
if(key_code === 'SIVA') {
result_int = 1000;
return;
}
,這將是在客戶端上填寫爲例如:
var key_code = 'SIVA';
if(key_code === 'SIVA') {
result_int = 1000;
return;
}
傳遞給客戶端的模板和代碼都應該通過JSLint。
@JavaUser這是你在找什麼,還是有別的?更好的是,如果這解決了您的問題,請您將其標記爲解決方案? –
謝謝@JavaUser :) –
啊,很好的電話。我的意思是,仍然存在一個*巨大的問題 - 如果OP真的使用像if((''<%key_code%>')==='SIVA'){'這樣的代碼,而不是將該比較與服務器上的靜態值進行比較,我覺得我們已經失去了他或她(這完全是濫用動態生成的JavaScript),但我很高興你能夠在那裏看到我的心理障礙。 ; ^) – ruffin
不確定你要在這裏做什麼。你將一個靜態字符串與一個靜態字符串進行比較,該字符串與('SIVA') === 'SIVA'
相關,這給出了一個奇怪的關係。
如果您將'SIVA'
與'SIVA'
比較,它將始終爲真。爲什麼使用if
來查看是否屬實?這很奇怪!這是JSLint報告「奇怪狀況」的原因。 ; ^)
我假設你想那些錫瓦斯的一個是一個變量,我在下面的代碼更改。
這裏的相似,我認爲你做的是通過JSLint的代碼。
/*jslint sloppy:true, white:true, browser:true */
var Result, sivaValueToCheck;
if(sivaValueToCheck === 'SIVA'){
Result = 1000;
// return; // don't exit early. configure your else.
} else {
window.alert('do the logic you wanted to skip before');
}
請注意,您必須聲明Result
,你可以,如果你想不只是return
通過JSLint的。您可以辯論單一回報規則的用處,但這個想法是,單一回報可以更容易地遵循代碼。
括號內的內容不是靜態字符串,它來自後端。我正在使用這個條件來檢查表格中的數值,並使用用戶提供的數值 – JavaUser
然後您需要讓我們看看您的實際代碼。 '('SIVA')'寫在你的問題中清楚地評估爲一個靜態字符串 - 我敢打賭它會導致你的JSLint錯誤。但我懷疑,從這個和你最近的另一個問題你可能會期待不同的行爲。無論你在你的問題*中有什麼是*你的代碼,那*是*什麼導致了JSLint錯誤,或者你需要讓我們看到「真實」的東西。 ; ^) – ruffin
@ ruffin我提到的條件是基於用戶選擇動態生成的,但它不是真正的java代碼。這個條件被傳遞給jslint進行評估,並且除了這個由於weird_relation屬性在jslint.js.So我刪除了這個屬性,問題就解決了。 – JavaUser
的Javascript接受,如果( 'A' == 'A'),但JSLint的沒有允許它由於weird_relation財產。如果從消息中刪除weird_relation屬性,並且將它從使用它的方法中刪除,它不會顯示任何錯誤。我這樣做並開始工作。
什麼版本的JSLint。當我做出的jsfiddle的嘗試JSHint(它使用的JSLint,我猜)的例子,我沒有得到任何麻煩:http://jsfiddle.net/fK7rw/1/ – HerrSerker
http://jslinterrors.com/weird-relation/ – HerrSerker
我正在使用當前版本的JSLint。我在www.jslint.com上測試過它,但我也遇到了同樣的錯誤。 – JavaUser