この記事では主にjsのbool値の変換方法と「&&」、「||」、「!!」の関連情報をサンプルコードを通して詳しく紹介していますので、学習にとても役立ちます。必要な友人は、以下を参照してください。
はじめに
最初に知っておく必要があるのは、js には false の 6 つの値があるということです。つまり、0、''、null、unknown、NaN と false、その他 (含む) {}、[]、Infinity ) は true です。
Boolean() 関数を使用するか、2 回否定してオブジェクトのブール値を取得できます。たとえば、Boolean(unknown) と !!unknown もブール値を取得できます。 false,
0、''、null、unknown、NaN、{}、[]、Infinity の場合、ブール値は false false false false false true true true になります。
つまり、わかっていることは 1 つあります: ブール値オブジェクトが {} であっても、オブジェクトのは true です。
ブール値変換
データ型 | ブール値変換 |
---|---|
未定義 | 未定義をfalseに変換 |
オブジェクト | nullはfalseに変換され、それ以外はtrueになります |
Boolean | falseはfalseに変換され、trueはtrueに変換されます |
Number | 0、NaNはfalseに変換され、その他はtrue |
String | ""はfalseに変換されます、他は true です |
"&&"
JavaScript の "&&" 演算子は次のとおりです:
&& の左側の式の値が true の場合、それ以外の場合は右側の式が返され、それ以外の場合は左側の式の値が返されます。複数の && 式が一緒に評価される場合、false と評価される最初の式の値が返されます。すべての式が true と評価される場合は、右端の式の値が返されます。
const aa = {'name': 'xx'}; const bb = aa && aa.age; // bb输出为undefined; let cc; const dd = cc && cc.name ? cc.name : undefined; // dd输出为undefined const dd = cc && cc.name; // dd输出为undefined;
上記の 2 つのコード文の実行結果は同じです。以前にコードを書いたときは常に上記の方法を使用していましたが、いくつかの単一テストがカバーされておらず、その結果、単一テストの分岐カバレッジが低くなっていることがわかりました。この問題を解決するには、次の方法に簡単に変更できます。これら 2 つの文の効果は同じです。
"||"
JavaScript の "||" 演算子のアルゴリズムは次のとおりです:
"||" の左側の式の値が true の場合、左側の式は戻り値、それ以外の場合は右側の式の値を返します。複数の「||」式を一緒に演算した場合、すべての式の演算結果が false の場合は演算結果が true の最初の式の値が返され、それ以外の場合は右端の式の値が返されます。
const aa = false || 'xx'; // aa输出为'xx'
"!!"
"!!" 式を強制的に bool 値に変換し、演算の結果は true または false になります。
rreee以上が皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。
関連記事:
VuejsのnextTick()による非同期更新キューの実装
CommonsChunkPluginを使用してパブリックモジュールを抽出する方法
以上がjsでブール値を変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。