1. 判断を上手に使う:
jsでは、NaN、unknown、Null、0、""はboolに変換するとfalseになるので、このように書けます。
は、オブジェクトが false の場合にオブジェクトが行う動作を表します。obj が上記のいずれかである場合、それは false、!false は true であるため、if(obj==null || obj == NaN を指定する必要はありません) ....)。
2. 演算子を上手に使用します:
タイムスタンプを取得するには非常に古典的なトリックがあります。
js は型指定が弱い言語であることがわかっています。Date() は、この文字列を使用して算術演算を実行すると、結果のタイムスタンプが変換されます。
3. 正規表現を上手に使用します:
4. 配列の最大値と最小値を取得します:
5. メモリの最適化:
JavaScript にはブロックレベルのスコープやプライベート変数のようなものはありませんが、いくつかの機能を使用することで、これらの効果をシミュレートできます。
7.1 ブロックレベルのスコープ:
この利点は、関数内の変数に () の外部からアクセスできないことと、ブロックレベルのスコープになることです。このメソッドは通常、プラグインを作成するときに使用され、グローバルに追加の変数を追加しません。 .変数であり、関数の実行後、その内部で定義された変数は破棄されるため、クロージャー機能には問題ありません。
7.2 プライベート変数:
プライベート変数は、実際には関数のスコープを制限 (外部からアクセスできない) として使用し、対応する変数を返すメソッドを定義するだけです。
8.DOM ノードリスト:
nodeList は動的要素です。つまり、ドキュメントに要素を追加すると、nodeList は次のようにリアルタイムで更新されます。
このコードは無限ループを引き起こします。ループ内で div が作成され、appendChild メソッドがそれを body に追加します。その後、すべての alldiv がすぐに更新されるため、i
var alldiv = document.getElementsByTagName('div');
var len,i;
for(i=0,len=alldiv.length;i
var div = document.createElement('div');
div.innerHTML= i.toString();
document.body.appendChild(div);
}
ここに提案があります: 各操作で DOM ツリーのクエリが実行されるため、NodeList を頻繁に操作しないことをお勧めします。
上記で紹介した方法に加えて、HTML5 の新たに追加された API (セレクター API Level1) もこの問題を解決できます。 linq リアルタイム クエリとは何かというと、C# の linq リアルタイム クエリと似ています。今後もブログを更新していきますので、お楽しみに:
querySelectorAll には、jquery の $() と同様に、CSS セレクターという 1 つのパラメーターが必要です。返される NodeList は、タイムリーな非動的 DOM コレクションです。
最初に一致した要素を返す querySelector もあります。HTML5 API の詳細については、
を参照してください。http://www.w3.org/standards/techs/dom#w3c_all
または
https://developer.mozilla.org/zh-CN/docs/Web/API
さらに、HTML5 API に特化したブログも準備中ですので、ご期待ください。
9.DOM パフォーマンス:
そんなバカなことしないでください(やってしまった…)
オブジェクトの innerHTML に値を割り当てると、組み込みの C パーサーが呼び出され、文字列が解析されます。これは非常に高速ですが、パフォーマンスがある程度低下するため、行わないことをお勧めします。
こうする方が良い:
for(var i=0;i
{
ih ="
その他のパフォーマンス最適化トピックについては、時間があるときに更新されます。
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。