エラー分析: 9 つの JavaScript トラップとコメント_JavaScript スキル
JavaScript の 9 つの落とし穴から、JavaScript のよくある 9 つの落とし穴を紹介します。これはそれほど深い技術的な問題ではありませんが、注意を払うことでプログラミングが容易になり、これは「生活を楽にする」と呼ばれるもので、いくつかのトラップについて著者はさまざまなコメントをしています。
1. 最後のコンマ
このコードのように、最後のコンマに注目してください。これは言語学的観点からは適切です (Python の同様のデータ型の辞書ではこれが可能です)。 IE は構文エラーを報告しますが、言語は不明瞭です。人間の目で確認できるのは数千行のコードだけです。
[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して実行する必要があります
2. これ
の参照は次のコードのように変更されます: 外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
基本的に、これは JavaScript のスコープの問題です。調べてみると、解決策が複数あることがわかります。
3. ID 泥棒
JavaScript で HTML ID と同じ変数名を使用しないでください。次のコード:
[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、
を実行するために更新する必要があります]
IEオブジェクトが未定義のエラーであることを報告します。
4. 文字列は、 <script> var theObj = { city : "Boston", state : "MA", } </script> <script> var MyObject = function () { this.alertMessage = "Javascript rules"; this.ClickHandler = function() { alert(this.alertMessage ); } }(); document.getElementById("theText").onclick = MyObject.ClickHandler </script>[Ctrl A すべて選択 注: <script> var MyObject = function () { var self = this; this.alertMessage = "Javascript rules"; this.OnClick = function() { alert(self.value); } }(); document.getElementById("theText").onclick = MyObject.OnClick </script>外部 Js を導入する必要がある場合は、<script> TheButton = get("TheButton"); </script> を実行するために更新する必要があります]<script> var fileName = "This is a title".replace(" ","_"); </script>
実際、結果は「This_is a title」になります。JavaScript では、String.replace の最初のパラメータは正規表現である必要があります。したがって、正しいアプローチは次のとおりです:
var fileName = "これはタイトルです".replace(/ /g,"_");
5.場合によっては、mousein
を意味することもありますが、これはイベントのバブリングによって引き起こされます。 IEにはmouseenterやmouseleaveがありますが、標準ではありません。著者は、この問題を解決するために YUI などのライブラリを使用することをお勧めします。
6. parseInt は基本システムに基づいています
これは常識ですが、多くの人は parseInt に基本システムを指定する 2 番目のパラメーターがあることを無視しています。たとえば、parseInt("09") の答えが 9 だと思うなら、それは間違いです。ここでは、文字列は 0 で始まり、parseInt は 8 進数で処理するため、8 進数では 09 は無効であり、ブール値 false は数値に変換されて 0 になります。したがって、正しいアプローチは parseInt(" です。 09", 10).
7. for...in... はすべてを走査します
次のようなコードがあります:
var arr = [ 5,10, 15]
var total = 1;
for ( var x in arr) {
total = total * arr[x]
}
;そうじゃないですか?しかし、ある日、それが機能しなくなり、私に返される値は NaN (ハロー) になりました。先ほどライブラリを紹介しました。このようにして、このライブラリは Array のプロトタイプを書き換えていることがわかり、arr にはもう 1 つの属性 (メソッド) があり、for...in... がそれを走査します。したがって、次のようにする方が安全です:
for ( var x = 0; x
実際、これは基本クラスのプロトタイプを汚染することによって引き起こされる害の一例でもあります。
8. イベント ハンドラーの罠
これは実際には、イベント ハンドラーがオブジェクトの属性として使用される場合にのみ存在する問題です。たとえば、window.onclick = MyOnClickMethod のようなコードは、以前の window.onclick イベントを上書きし、IE のコンテンツがリークする可能性があります (また最悪です)。 IE が DOM 2 イベント登録をサポートしない前は、作成者は、YUI などのライブラリを使用して問題を解決することを提案していました:
YAHOO.util.Event.addListener(window, "click", MyOnClickMethod) ;
これも常識ですが、初心者は間違いを犯しやすいです。
9. フォーカス ポーカス
新しい入力テキスト要素を作成し、そこにフォーカスを移動します。
var newInput = document .createElement("input");
document.body.appendChild(newInput);
newInput.select();エラー(何度も吸う)。原因としては、 focus() を実行した時点で要素がまだ存在していないことが考えられます。したがって、実行を遅らせることができます:
var newInput = document.createElement("input");
newInput.id = "TheNewInput";
document.body.appendChild(newInput) ;
setTimeout(function(){ //ここではクロージャを使用して書き直しました。興味がある場合は、元のテキストと比較してください。
document.getElementById('TheNewInput').focus();
document.getElementById(' TheNewInput').select();}, 10);
実際には、JavaScript にはさらに多くの落とし穴があり、そのほとんどはパーサーの不適切な実装によって引き起こされます。これらのことは通常、教科書には載っておらず、開発者間の経験の共有に頼るしかありません。ありがたいことに、私たちはインターネット時代に生きており、遭遇する質問の多くは通常 Google で見つけることができます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
