在AS3中,當您嘗試使用Boolean()將包含「1」或「0」的字符串強制轉換爲布爾值時,結果在兩種情況下均爲true。如何在AS3中將字符串「1」和「0」轉換爲真和假?
Boolean("1") // true
Boolean("0") // true
如何在第一種情況下獲得真實性並在第二種情況下獲得假?
在AS3中,當您嘗試使用Boolean()將包含「1」或「0」的字符串強制轉換爲布爾值時,結果在兩種情況下均爲true。如何在AS3中將字符串「1」和「0」轉換爲真和假?
Boolean("1") // true
Boolean("0") // true
如何在第一種情況下獲得真實性並在第二種情況下獲得假?
您可以檢查該字符串包含「1」的確切值,就像這樣:
var myBool:Boolean = (myString === "1");
或者你可以做一個雙鑄造,像這樣:
var myBool:Boolean = Boolean(int(myString));
後者對於帶有空白(「1」)或甚至「01」的字符串(如果這是可取的),但仍然是「0」,「0」或「00」是錯誤的。
我已經添加過這個Q &因爲我剛剛偶然發現了這個布爾(「0」)的問題。如果您有更好的解決方案,請隨時發表評論。
如何在第一種情況下獲得真實性並在第二種情況下獲得假?
有多種方式分別'1'
和'0'
轉換爲true
和false
,但更重要其他數字是如何投給如何處理這些案件。
舉例來說,如果你要正確對待這些字符串爲數字,並將他們爲boolean,好像他們是數字,那麼你可以轉換爲Number
鑄造Boolean
前:
var t = '1';
var f = '0';
Boolean(Number(t)); //true
!!+f; //false, terse syntax
這意味着,其他非零數字如'-1'
將變爲true
,並且轉換爲NaN
的非數字(例如'word'
)將變爲false
。
相反,如果要檢測,如果該值'1'
準確,和其他一切應該是false
,然後用一個簡單的等式比較:
t === '1'; //true
f === '1'; //false
相反,如果要檢測,如果該值不零,你可以用一個簡單的不等式對比:
t !== '0'; //true
f !== '0'; //false
最終真正重要的是你期望的輸入和它們各自的預期輸出。
它發生在任何ECMAScript實現(例如JavaScript)中。 – axelduch