2017-06-25 34 views
0

我剛開始學習Javascript,並正在使用此引用:https://www.discovermeteor.com/blog/javascript-for-meteor/! javascript中的運算符 - 用例

有一個有趣的評論,我無法理解我的頭。我在下面引用。


一個有趣的結果!運營商是它總是返回一個布爾值,即使什麼來後不是一個布爾值:

a = 12; 
!a; // false 

這意味着,如果你想給一個變量轉換爲Boolean你可以使用!操作兩次(一次迫使變量布爾,第二次恢復值回):

a = 12; 
!!a; // true 
Or: 

a = 0; 
!!a; // false 

誰能幫助我,使措辭的意義嗎?

它只是試圖說除0之外的任何整數都被賦值爲True的布爾值,並且您可以使用「!」返回布爾值True/False。和「!!」分別?

+1

這是很自我解釋...!總是返回一個布爾值......它是否返回false的真值取決於操作數......任何「falsey」都會導致「true」,任何錯誤都將導致「false」....將意味着任何真理會導致'真實',任何虛假的將導致'假' –

+0

嗯,我明白了,但似乎更多的東西在這裏......「這意味着,如果你想將一個變量轉換爲布爾值,你可以直接使用!運算符兩次(一次強制變量爲布爾值,第二次將值恢復)「。變量被轉換爲布爾值? – runawaykid

+0

不是變量,值...'var a = 0; !a;'不會改變a,它仍然是'0' ...!a'是真實的(在這種情況下,這個真正的值根本不被使用),或者換句話說'var a = 0;如果(!a){這樣做是因爲!a是真的}' –

回答

0

是的,!!something是一種將something轉換爲布爾值的方法(基本上找出something是否爲truthy)。 0和NaN是將與!!運營商(或Boolean()調用)轉換爲false的唯一號碼值。所有其他號碼將是true

同樣,+something是一種將something轉換爲數字的方法。

我通常更喜歡更明確的方法:Boolean(something)Number(something)

+0

'+某物是將某物轉換成數字的一種方式 - 或NaN ...這是一個不是數字的數字:p –

+0

NaN諷刺的是,這是一個數字(一個很好的標準化定義)。順便說一下,這不是JS的獨特之處,儘管它經常被引用爲JS的「wat」之一。 –

+0

是的,我說錯了 - NaN的意思是「不是數字」,但它是一個數字 –