ホームページ >ウェブフロントエンド >jsチュートリアル >Truthyとfalsy Values:JavaScriptですべてが等しくない場合
JavaScriptの平等比較は、タイピングが緩んでいるため、難しい場合があります。この記事では、ダブル(==)とトリプル(===)のニュアンスと、オペレーターに等しいものと、真実と偽りの価値の概念を探ります。
JavaScriptの動的タイピングにより、柔軟な値の割り当てが可能になりますが、予期しない比較結果を引き起こす可能性があります。 ゆるい平等(==)はタイプの強制を実行し、多くの場合、驚くべき結果につながります。厳格な平等(===)は値とタイプを直接比較し、より信頼性の高い比較をもたらします。
false
、0
、-0
、0n
、および""
です。他のすべての値は、null
、undefined
、NaN
、'0'
、および関数を含む真実です。
'false'
均等のゆるい比較と真実/falsyの値は予測不可能です。たとえば、[]
は真ですが、{}
は誤りであり、false == 0 == ''
)を使用し、ブール値([] == true
または[] == false
)に明示的に変換します。これにより、予測可能な動作が保証されます
===
javascriptのタイピングシステム:Boolean()
!!
ゆるい平等(==)は、比較の前に値を文字列に変換します:
厳密な平等(===)は、タイプを考慮してください:
<code class="language-javascript">let x; x = 1; // x is a number x = '1'; // x is a string x = [1]; // x is an array</code>
javascriptのプリミティブタイプは、
、<code class="language-javascript">// all true 1 == '1'; 1 == [1]; '1' == [1];</code>、
、
、<code class="language-javascript">// all false 1 === '1'; 1 === [1]; '1' === [1];</code>、
、およびundefined
です。 それ以外はすべてオブジェクト(配列を含む)です。null
boolean
number
bigint
string
symbol
Truthy vs. Falsy Values:
各値にはブール同等のものがあります:
falsy:
、
、false
、0
-0
0n
""
Truthy:null
undefined
NaN
例:
ゆるい平等(==)比較:
ゆるい平等は、Truthy/Falsy Valuesで予期しない結果につながります:
厳密な平等(===)比較:
厳密な平等はより明確な結果を提供します:
NaN === NaN
は常にfalse
。
推奨事項:
!x
x == false
Strict equality(===
またはBoolean(x)
結論:!!x
faqs(簡潔にするために略された):
Truthy/falsy Concept:
Boolean()
)およびまたは(==
非ブールのfalsy値:===
===
、&&
。||
0
を使用します
論理操作におけるfalsy値:""
操作の結果に影響します。null
undefined
NaN
特別なケース:-0
以上がTruthyとfalsy Values:JavaScriptですべてが等しくない場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。