前の言葉
JavaScriptはシンプルな言語で複雑な言語です。それはそれを使用することを学ぶのに少し時間がかかるので、それは簡単です。それは本当にそれを習得するのに何年もかかるので複雑です。実際、フロントエンドエンジニアはJavaScriptエンジニアを大部分が参照しています。フロントエンドを始めるのは簡単で、マスターが困難です。これは、フロントエンド、さらに重要なことに、JavaScriptを指します。この記事は、JavaScriptの基本文法の最初の記事 - 語彙構造です
Javaとの関係
JavaScriptについてはそのようなことわざがあります。JavaとJavaScriptの関係は、Lei FengとLei Fengタワーの関係です。それは重要ですか?
JavaScriptの最初の名前はLivescriptでした。 JavaScriptを正式名として選んだ理由は、おそらく有名な家族のように聞こえることでした。 Javaに似た構文に加えて、JavaScriptとJavaは2つの完全に異なるプログラミング言語です。
プログラミング言語は、解釈とコンパイルされた2つのカテゴリに分かれています。 JavaやC ++などの言語には、コンパイラが必要です。コンパイラは、Javaなどの高レベルの言語で記述されたソースコードをコンピューター上で直接実行するファイルに翻訳できるプログラムです。解釈されたプログラミング言語はコンパイラを必要としません - 彼らは通訳者のみを必要とし、ブラウザのJavaScriptインタープリターはソースコードを直接読み取り、それを実行します。
Javaは理論的にはほとんどすべての環境で展開できますが、JavaScriptはWebブラウザーにのみ適用される傾向があります。さらに、JavaScript言語では、関数はプロトタイプオブジェクトに基づいた継承チェーンを使用して独立したデータ型であり、JavaScript構文はJavaよりもはるかに自由です。
基本的に、JavaScriptという名前の元の意味は「Java Scripting Languageに非常に似ています」
意味
JavaScriptは、オブジェクト指向の機能的なプログラミングスタイルに非常に適した動的で弱いタイプの解釈プログラミング言語です。 JavaScriptの構文はJavaに由来し、そのファーストクラスの機能はスキームに由来し、そのプロトタイプベースの継承は自己から来ています
JavaScriptは、ページの動的効果を強化し、ページとユーザーの間のリアルタイムおよび動的な相互作用を実現するために使用されます。
JavaScriptは、EcMascript、Dom、およびBOMの3つの部分で構成されています
[1] ECMAScriptはECMA-262で定義され、コア言語機能を提供します(ECMAは欧州コンピューターメーカー協会です)
[2] DOM(Document Object Model)ドキュメントオブジェクトモデル。ウェブページのコンテンツにアクセスして操作するためのメソッドとインターフェイスを提供する
[3] BOM(ブラウザオブジェクトモデル)ブラウザオブジェクトモデル、ブラウザと対話するためのメソッドとインターフェイスを提供する
症例感度
言語JavaScriptに関しては、それがどれだけ強調されていても、それは症例の感度です。 JavaScriptのキーワード、変数、関数名、およびすべての識別子は、大文字以下で一貫している必要があります。
//「オンライン」、「オンライン」、「オンライン」、「オンライン」は4つの異なる変数名です
[注] HTMLはケースに敏感ではありません
予約済みの単語
他のプログラミング言語と同様に、JavaScriptは独自の使用のためにいくつかの識別子を保持します。これらの予約された単語は、通常の識別子として使用することはできません。多くの参考書が誤解を招くため、予約された単語とキーワードは分離されているようですが、実際にはそうではありません。キーワードは、予約済みの単語の一部にすぎません。予約された単語には、キーワード、将来の予約された単語、空のリテラル、ブールリテラルが含まれます
予約ワード::
キーワード
fururerivedivedword
無効
ブールリテラル
キーワード
intanceof of ofを破る
ケース他の新しいvar
キャッチ最終的にvoidを返します
スイッチを継続します
デバッガーはこれを機能させます
スロー削除の場合はデフォルト
試してみてください
将来の予約された言葉
次の単語は、提案された拡張キーワードとして使用されるため、これらの拡張機能が将来採用されるように予約されています。
クラスの列挙はスーパーを拡張します
constエクスポートインポート
ecmascript3バージョン
上記はECMAScript5の予約単語ですが、ECMAScript3バージョンの予約された単語は異なります。 ECMAScript3の実装に基づいてコードをインタープリターで実行したい場合は、次の予約単語を識別子として使用しないでください。
要約ブールバイトチャークラスconstdouble enumエクスポートが最終フロートを拡張する
GOTOは、インターフェースインターフェースネイティブパッケージを輸入しています。プライベート保護
パブリックショート静的スーパーシンクロナイズスロー過渡揮発性
事前定義された変数と関数
さらに、JavaScriptは多くのグローバル変数と機能を事前に定義し、名前を識別子名として使用することを避ける必要があります
引数Array boolean decodeuri decodeuricomponent encodeuuriencodeuricomponentエラー評価evalerror関数無限
ISNAN JSON MATH NAN番号オブジェクトParsefloat Parseint raigherror
ReferenceError Regexp String SyntaxError Typherror未定義のurierror
コメント
すべてのステートメントをJavaScriptインタープリターによって解釈および実行する必要があるわけではありません。自分の参照やリマインダーのためにスクリプトに情報を書く必要がある場合があり、JavaScriptインタープリターがこの情報を直接無視できることを願っています。このタイプの情報はコメントです
コメントはコードフローを効果的に理解するのに役立ち、コードでライフノートの役割を果たします。これは、スクリプトが何をするかを把握するのに役立ちます。
[注]コメントはコードを正確に説明する必要があります。役に立たないコメントは、コメントなしよりも悪いです
シングルラインコメント、マルチラインコメント、HTMLスタイルのコメントなど、JavaScriptスクリプトにコメントを挿入する方法はたくさんあります
【1】単一行のコメントは2つのスラッシュから始まります
//単一行のコメント
【2】マルチラインのコメントは、ブロックレベルのコメントとも呼ばれ、スラッシュとアスタリスク/*で始まり、アスタリスクとスラッシュで終わります*/
/*
これはマルチラインのコメントです
*/
[注]ブロックレベルのコメント/ **// **/の文字も正規表現リテラルに表示される可能性があるため、コメントされたコードブロックではブロックレベルのコメントが安全ではありません。
/*
var rm_a = /a*/.match(s);
*/
【3】HTMLスタイルのコメントは、シングルラインコメントにのみ適用できます。実際、JavaScriptインタープリターは<! - と//を処理する
<! - これはJavaScriptのコメントです
HTMLドキュメントにある場合は、コメントを終了する必要があります - >
<! - これはhtml->のコメントです
しかし、JavaScriptはこれを必要としません、それは扱います - >コメントコンテンツの一部として
[注] HTMLでは、上記のようなコメントが複数の行に及ぶことを許可しますが、そのようなコメントの各行は、コメント「<! - 」の先頭にフラグとして追加する必要があります。
<! - コメント1です
<! - コメント2です
<! - コメント3です
JavaScriptインタープリターは、このスタイルのコメントを扱う際にHTMLとは異なるため、混乱を避けるためにJavaScriptスクリプトで使用しないことが最善です。
HTMLスタイルのコメント
空白
ブランクは通常意味がなく、時にはそれを使用して分離する必要があります。そうしないと、シンボルにマージされます。
var that = this;
VARとそれを削除することはできませんが、他のブランクを削除することができます
JavaScriptは、プログラムのトークン間のスペースを無視します。ほとんどの場合、JavaScriptはラインブレークも無視します。コードではスペースとラインブレークを自由に使用できるため、きちんとした一貫したインデンテーションを使用して統合されたエンコードスタイルを形成し、それによってコードの読みやすさを改善できます。
//(var i = 1; i <10; i ++){//}のWhitespace文字を追加して、コードの読みやすさを改善しますJavaScriptは、以下をWhitespace文字のWhitespaceとして認識しています
/u0009水平タブ文字<ab>
/u000b垂直タブ文字<vt>
/u000cページの変更<ff>
/u0020スペース文字<sp>
/u00a0非interuptスペース文字<nbsp>
/ufeff文字順序マーク
JavaScriptは、次の文字をラインターミネーターLineterminatorとして認識します
/u000a newline文字<lf>
/u000dキャリッジリターンキャラクター<cr>
/u2028 Line Delimiter <LS>
/u2029段落スプリッター<ps>
オプションのセミコロン
JavaScriptはセミコロンを使用します。ステートメントを分離します。これは、コードの読みやすさときちんとしたものを強化するために非常に重要です。しかし、JavaScriptはすべてのNewLinesでセミコロンを埋めません。セミコロンなしでコードを正しく解析できない場合にのみ、JavaScriptはセミコロンを埋めます。
var a
a
=
3
console.log(a)
JavaScriptはそれを次のように解析します
var a;
a = 3;
console.log(a);
この声明の分離ルールは、いくつかの予期しない状況につながる可能性があります
var y = x + f
(a+b)
JavaScriptはそれを次のように解析します
var y = x + f(a + b).tostring
したがって、上記のコードを2つの異なるステートメントに解析できるようにするために、行の端にある明示的なセミコロンは、行の最後に手動で埋める必要があります
2つの例外
現在のステートメントと次の行のステートメントをマージして解析できない場合、JavaScriptは最初の行の後にセミコロンに記入しますが、これは一般的なルールですが、2つの例外があります
[1]最初の例外は、リターン、ブレイク、続行、スローステートメントを含むシナリオです。これらの4つのキーワードの後にラインブレークが続くと、JavaScriptがラインブレークでセミコロンに記入します
戻る
真実;
JavaScriptはそれを次のように解析します
return; true;
そして、コードの元の意味は次のとおりです。
trueを返します。
[2] 2番目の例外は、++および - 演算子が関与する場合、それが接尾辞式として使用される場合、式と同じ線である必要があることです。それ以外の場合、行の端がセミコロンを埋め、++または - は次のコード行のプレフィックス演算子として使用され、それで解析されます
x
++
y
JavaScriptはそれを次のように解析します
x; ++ y;
そして、コードの元の意味は次のとおりです。
x ++; y;
セミコロンは必要ありませんが、セミコロンを追加すると多くのエラーを回避でき、コードの行の最後にセミコロンを持たないと圧縮エラーが発生するため、省略しないことが最善です。セミコロンを追加すると、セミコロンを挿入する場所を推測する時間を費やす必要がなくなるため、セミコロンを追加するとコードのパフォーマンスが向上します。