2016-06-30 17 views
0

現在擺在任何鏈接這篇文章: JSLint : Expected '!!' and instead saw '?'jslint預計!而是看到?

我想解釋一下,我想我明白爲什麼JSLint的是給我這個錯誤,但是我不能確定爲我將如何返工的代碼行下面利用!運營商。

active = $item.find('isActive').text() === 'true' ? true : false, 

會有人介意在這方面給我啓迪嗎?

我試着這樣做第一,但即使我的新手的眼睛,我能看到這基本上是廢話:

active = $item.find('isActive').text() === !! 'true' true : false, 

我想寫乾淨的JavaScript,所以我寧願得到適當的解釋,爲什麼使用! !代替 ?是很好的做法。看着JSLint的錯誤網站並沒有透露這一令人傷心的事情。

在此先感謝

回答

3

我不確知我將如何返工的代碼行下面利用!運營商。

你不會在這種情況下,!!? :在這裏都不合適。 ===計算結果爲布爾值,因此簡單地說:

active = $item.find('isActive').text() === 'true' 

所有相等運算符(===!====!=)和關係運算符(<<=>>=)結果在真正的布爾值。

如果你想設置active基於東西是否是一個布爾值truthy(強制轉換到true)或falsy(強制轉換到false然後!!將是適當的。但是,當你已經有一個布爾值時不行。

例如,假設您想根據str是否是虛假來設置blank。在這種情況下,

blank = !!str 

會是合理的。

+0

我想他正在嘗試一些完全不同的東西。 –

+1

啊哈,我明白了!所以基本上jslint錯誤有點讓我在那個兔子洞裏:P感謝幫助哥們:D – pragmatic84

相關問題