ホームページ > 記事 > ウェブフロントエンド > Javascriptフェンス状態判定_JavaScriptスキル
次のコードを考えてみましょう。
if (node.nextSibling.className == ...) {
...
}
ノードまたはnode.nextSiblingが null の場合、エラーが発生します。返される。したがって、通常、解決策のコードは
if ((node) && (next = node.nextSibling) && ... ) {
...
}
Then の場合、条件がが 1 つ以上であると判断された場合、コードは次の状況を形成します
if (
(node) &&
(node.nextSibling) &&
(node.nextSibling.className = = ...)
... ) {
...
}
判定条件の数が増え続けると、コードは非常に「醜い」ものになります。
条件判定式を簡略化できるちょっとした「裏技」があります。
if ( next = (node || 0).nextSibling) ) {
...
として、空のオブジェクト ({}) またはゼロ (0) を追加できます。 }
すると、上記のコードは次のように書くことができます。
if (((node || 0).nextSibling || 0).className == ...) {
. ..
}
--分割--
個人的には、上記のコードはある観点から見ると非常に合理化されます。しかし、実際の日常的なコーディングプロセス、特に複数人で協力する場合、これらのコードは他の開発者に何らかのトラブルを引き起こす可能性があります。
Xiao Ma が言ったように、すでに特定のフレームワークを使用している場合は、特定の問題を詳細に分析する必要があります。たとえば、上記の条件判定コードは YUI コーディングを使用して使用できます。
YAHOO.util.Dom.hasClass(el, className)
は、上記のコードよりも合理化され、理解しやすいように見えます。