JavaScript がセミコロンを自動的に挿入しないようにする方法
JavaScript には、行末にセミコロンを自動挿入するメカニズムがあります。これにより、セミコロンの入力を忘れることを許容できる人もいます。 もちろん、セミコロンを入力する習慣を身につけ、セミコロンの省略を JavaScript がどのように処理するかを理解することが最善です。この知識は、セミコロンのないコードを理解するのに役立ちます。
JavaScript 言語にはメカニズムがあります。解析中に、文の後にセミコロンを自動的に挿入して、文末の欠落しているセミコロン区切り文字を修正できます。ただし、この自動的に挿入されたセミコロンは、すべての空白文字が無視されるという JavaScript 言語の別のメカニズムと競合するため、プログラムは空白を使用してコードをフォーマットできます。
これら 2 つのメカニズム間の競合により、より深刻な解析エラーが簡単に隠蔽される可能性があります。セミコロンが不適切なタイミングで挿入されることがあります。たとえば、return ステートメントにセミコロンを自動的に挿入すると、次のような結果になります。 return ステートメントが値を返す場合、この値の式の先頭は return と同じ行にある必要があります。たとえば、
var f = function(){ return { status: true }; }
ここではステータスメンバー要素を含むオブジェクトが返されるようです。残念ながら、JavaScript は自動的にセミコロンを挿入し、未定義を返すため、以下で返されるオブジェクトが無視されます。
セミコロンの自動挿入によりプログラムが誤解される場合、警告は表示されません。この問題は、次の行の先頭ではなく前の行の末尾に { を配置することで回避できます。例:
var f = function(){ return { status: true }; }
セミコロンを省略することをお勧めします。 行内のステートメントが完全であるかどうかに関係なく、完全なステートメントである限り、文の終わりを示すためにセミコロンを追加する必要があります。
読みやすくするために、長い文を複数の行に分けて表示する必要がある場合、完全な論理意味論を 1 行で形成できないようにする必要があります。たとえば、次のコードは連続した代入ステートメントです。別々の行に表示すると、それらの関係がより明確に表示されます。この種の分岐は、独立した論理セマンティクスを 1 行で形成できないため、JavaScript は各行を独立した文として扱わないため、あいまいさが存在しないことを示しています。
var a = b = c = 4;
上記のステートメントは、次のように 1 行で表示されます: var a = b = c = 4;
次のステートメントの場合、if正しくありません。別々の行に表示すると、あいまいさが生じやすくなります。この文の意味: 変数 i を定義し、それに値を代入します。変数 a が true の場合、その値は 1 に代入されます。それ以外の場合は、変数 b が true であると判断され、値が代入されます。それ以外の場合は変数 c が判定され、c が true の場合は代入値は 3、それ以外の場合は代入値は 4 となります。
var i = a ? 1 : b ? 2 : c ? 3 : 4;
以下の分岐表示は間違っています。式 a? 1: b は独立した論理セマンティクスを形成できるため、JavaScript は独立した文を表すためにその後ろにセミコロンを自動的に追加します。
var i = a ? 1: b ? 2 : c ? 3 : 4;
安全なメソッドは、各行が独立したセマンティクスを形成できないように、次のように別々の行に表示する必要があります。
var i = a ? 1 : b ? 2 : c ? 3 : 4;
つまり、コードを書くときは、完全な文はすべてセミコロンで区切る必要があります。文を別々の行に表示する場合は、単一の行が独立した法的論理セマンティクスを簡単に形成できないようにする必要があります
追記: 行末にセミコロンを自動的に追加する JavaScript の詳細な例
セミコロン (;)。通常はステートメントの行の最後に使用されます。コードは次のとおりです:
var webName = "php中文网"; var url = www.jb51.net;
上記のコードは、各宣言ステートメントの後にセミコロンを追加します。これについてはこれ以上説明する必要はありません。
var webName = "php中文网" var url = www.jb51.net
実際、セミコロンは省略できますが、省略されたセミコロンはコンパイル段階で自動的に追加されます。
コード例を見てみましょう:
function done(webName){ return webName } console.log(done("php中文网"));
コンパイラーが各行の後に自動的にセミコロンを追加するため、出力値は「php Chinese net」ではなく、undefinated となります。
上記はこの章の全内容です。その他の関連チュートリアルについては、JavaScript ビデオ チュートリアル をご覧ください。

ホット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を持つ必要性に遭遇します...

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

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

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

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