検索
ホームページウェブフロントエンドjsチュートリアル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 ビデオ チュートリアル をご覧ください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Java vs JavaScript:開発者向けの詳細な比較Java vs JavaScript:開発者向けの詳細な比較May 16, 2025 am 12:01 AM

Javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps、whilejavascriptisforinteractivewebpages.1)javaiscompiled、staticatically、andrunsonjvm.2)javascriptisisterted、dynamsornoded.3)

JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?May 14, 2025 am 12:15 AM

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

JavaScriptコメント://および / * *を使用するためのガイドJavaScriptコメント://および / * *を使用するためのガイドMay 13, 2025 pm 03:49 PM

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

Python vs. JavaScript:開発者の比較分析Python vs. JavaScript:開発者の比較分析May 09, 2025 am 12:22 AM

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

Python vs. JavaScript:ジョブに適したツールを選択するPython vs. JavaScript:ジョブに適したツールを選択するMay 08, 2025 am 12:10 AM

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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