ホームページ >ウェブフロントエンド >jsチュートリアル >条件内の割り当て
if($summary = get_post_summary()) { return $summary; }私が言及しているのは、条件内の割り当てです。 unningningningninglyでは、JavaScriptでも行うことができますが、それははるかに一般的ではありません。
if(summary = document.getElementById("post-summary")) { return summary.innerHTML; }一見、タイプミスだと思うことを許されるでしょう!実際、一部のデバッグは、警告でそれにフラグを立て、平等のテスト(==)を意味するかどうかを尋ね、割り当て(=)として間違っていました。 しかし、それは間違いではありません。それを理解するための鍵は、 2つのことを理解することです: 最初に、割り当ては値(割り当てた値)を返します。第二に、最も重要なことは、それが返す値は真またはfalseに評価され、最終的に条件が合格するかどうかを決定することです。 さて、dom 評価とトラバーサルの世界では、この手法は安全で予測可能なものです。なぜなら、domノードは存在するか、nullであるため、nullはfalseに評価する必要があります。 。したがって、上記のコードの例では、「#summary」要素が存在する場合、またはそうでない場合はfalseの場合、条件はtrueに評価されます。 同様に、同じトリックを使用して未知の階層を反復し、while()を使用して連続した親を通過することができます。この例では、イベントターゲットと#ddocumentの間にすべてのノード名の配列を作成します。
var names = [], node = e ? e.target : event.srcElement; do { names.push(node.nodeName); } while(node = node.parentNode)しかし、JavaScriptの他の場所では、信頼性の低い領域にいることに気付くことができます。なぜなら、多くの値がどれほど真実か、どのように誤っているかは 直感的ではないからです。 たとえば、正と負の両方の数字は、ゼロとnan を除いて真であると評価します。そして奇妙なことに、オブジェクト ブールコンストラクターで作成された常には、新しいブール(false)として作成されたとしても、trueに評価されます。 だから注意してください!このような構文は、気楽なものではありません。また、タイプの変換と任意の価値の鋳造に過度に依存して、キャバリエの方法で使用すべきではありません。しかし、適切な状況でよく使用されているため、多くの条件を簡素化して、より速くてleanせたコードを作成できます。
サムネイルクレジット:sbwoodside
条件内の割り当てとは、「if」ステートメントなどの条件ステートメント内で変数に値を割り当てる慣行を指します。これは、JavaScript、C、Pythonなど、多くのプログラミング言語で一般的な慣行です。割り当てと条件チェックを1行で実行できるため、より簡潔なコードが可能になります。ただし、割り当て操作が比較操作と間違っている可能性があるため、慎重に使用されない場合、混乱や潜在的なバグにつながる可能性があります。
条件付き表現での割り当ては、混乱や潜在的なバグにつながる可能性があります。これは、割り当て演算子(=)が平等演算子(==)と簡単に間違える可能性があるためです。その結果、比較となることを意図した条件は、不注意に割り当てになる可能性があり、コードの予期しない動作につながる可能性があります。さらに、条件での割り当てにより、特に経験の少ないプログラマーにとって、コードの読み取りと理解がより困難になる可能性があります。
条件の割り当てが受け入れられるか有益な状況はありますか?
割り当てオペレーターと平等演算子の違いは何ですか?
タイプスクリプトは条件で割り当てをどのように処理しますか?ただし、TypeScriptには、条件の割り当てによって引き起こされる潜在的なエラーをキャッチするのに役立つより厳格なタイプのチェックがあります。たとえば、条件内の数値であると思われる変数に文字列を割り当てようとすると、タイプスクリプトはコンパイル時間エラーを提供します。
以上が条件内の割り当ての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。