アプリケーションでいくつかのコードを実行して JavaScript を学習しようとしていますが!variable、if 条件を確認し続けています。例えば:
if (!variable.onsubmit || (variable.onsubmit() != false)) {
それは何ですか?変数が空であるかどうかの何らかのテストはありますか?
アプリケーションでいくつかのコードを実行して JavaScript を学習しようとしていますが!variable、if 条件を確認し続けています。例えば:
if (!variable.onsubmit || (variable.onsubmit() != false)) {
それは何ですか?変数が空であるかどうかの何らかのテストはありますか?
!JavaScriptの論理否定演算子です。
!expression次のように読みます。
expressionて評価します。あなたの場合、それはvariable.onsubmitonsubmit、関数である可能性が高いため、関数がnullまたは未定義の場合はfalseを返し、そうでない場合はtrueを返します。あなたの場合!variable.onsubmit、関数が定義されていない(したがって偽である)場合は true を返し、そうでない場合は false を返します(関数が定義されているため)。
簡単に言えば -!variableの真値を取り、variableそれを否定することを意味します。
したがって、変数が(または強制的に false)である場合if (!variable) {に節に入ります。iffalse
if (!variable.onsubmit || (variable.onsubmit() != false)) {
手段 -variable.onsubmitが定義されていて真である (つまり真である) かどうかを確認し、次に、呼び出しonsubmitが強制的に真になる結果を返すかどうかを確認します。短い行で、存在しないonsubmitか true を返すかどうかをチェックします。
これは、変数の真偽テストに使用される否定演算子です。
var myVariable = 1;
if ( ! myVariable )
{
// myVariable evaluates as false
}
if ( myVariable )
{
// myVariable evaluates as true
}
選択した回答は、すでに質問に回答しています。これに追加することの 1 つは、!演算子をかなり興味深い方法で使用できることです。
obj = {}
if (!!obj) {console.log('works')} // !!obj = true
obj = undefined
if (!!obj) {console.log('does not work')} // !!obj = false
したがって、 doubleは例外なく !!式を値に変更します。boolean
これには、場合によっては非常に特殊な使用例があります。
true または false のいずれかを返し、それ以外は何も返さない関数があるとします。その場合、特別な注意のために に変更return returnValueすることができreturn !!returnValueます (ただし、ほとんどの場合は必要ありません)。
逆に、関数が true または false のみを受け入れ、他には何も受け入れない場合、関数を as のfunctionA(!!parameter)代わりに呼び出すことができますfunctionA(parameter)。これもほとんどの場合必要ありませんが、追加のセキュリティを確保できます。