基本概念
javascript是一门解释型的语言,浏览器充当解释器。js执行引擎并不是一行一行的执行,而是一段一段的分析执行。スクリプトを遅らせます
Defer属性はHTML4.0.1で定義されています。これは、スクリプトが実行されたときにページの構築に影響しないことを示すために使用されます。つまり、ページ全体が実行前に解析されるまで、スクリプトは遅延します。したがって、<script>要素に延期属性を設定することは、ブラウザにすぐにダウンロードするように指示するのと同等ですが、実行は遅れます。 XHTMLドキュメントで、Defer属性をdefer=“defer"に設定します
非同期スクリプト
html5 、<script>のasync属性を定義します。プロパティ全体は、延期プロパティに似ており、処理スクリプトの動作を変更するために使用されます。同様に、Deferと同様に、ASYNCは外部スクリプトファイルでのみ動作し、ブラウザにファイルをすぐにダウンロードするよう指示します。しかし、Deferとは異なり、Asyncとしてマークされたスクリプトは、それらが指定されている順序で実行を保証しません。
Asyncを指定する目的は、ページがスクリプトファイルがダウンロードおよび実行されるのを待機しないようにすることです。これにより、ページの他のコンテンツが非同期にロードされます。したがって、非同期スクリプトはロード中にDOMを操作しないことをお勧めします
大文字と小文字を区別
ECMAScript(変数、機能名、演算子を含む)のすべては、ケースに敏感です。
1。JScript変数
変数は最初に使用されるときにメモリに設定されるため、後でスクリプトで参照されます。変数を使用する前に宣言します。 VARキーワードを使用して、可変宣言を使用できます。
var count, amount, level; // 用单个var 关键字声明的多个声明。
可変命名
変数名には、グローバル変数、ローカル変数、クラス変数、関数パラメーターなどが含まれます。これらはすべてこのカテゴリに分類されます。
可変命名は、タイプのプレフィックス +意味のある単語で構成されており、変数と関数の読みやすさはラクダの命名法によって増加します。例:susername、ncount。
プレフィックス仕様:
各ローカル変数には、次の型を分割できるタイプのプレフィックスが必要です。
S:文字列を表します。例:sname、shtml; n:数字を表します。例:npage、ntotal; B:ロジックを表します。例:Bchecked、Bhaslogin; A:配列を表します。例:Alist、Agroup; R:正規表現を表します。例:rdomain、Remail; F:関数を表します。例:fgethtml、finit; O:上記の他のオブジェクトを表します。 G:次のようなグローバル変数を表します。Gusername、Glogintime。
JScriptはケースに敏感な言語です。正当な変数名を作成するには、次のルールに従う必要があります。
最初のキャラクターは数字ではないことに注意してください。
あなたは任意の文字や番号を追跡して、下にアンダースコアすることはできますが、スペースではありません
変数名は予約された単語であってはなりません。
javascriptは弱く型付けの言語であり、 JavaScript不要なスペースを無視します。スクリプトにスペースを追加して、読みやすさを向上させることができます。
varはjavascriptの予約済みの単語であり、次のことが変数の説明であり、変数名がユーザー定義の識別子であり、変数はコンマで分離されていることを示します。
変数が宣言されているが、値が割り当てられない場合、変数は存在し、その値はjscript値が未定義です。
強制タイプ変換
JScriptでは、JScriptインタープリターからの例外を心配することなく、さまざまなタイプの値で操作を実行できます。代わりに、JScriptインタープリターは、データ型の1つを別のデータ型に自動的に変更(キャスト)し、操作を実行します。例えば:
計算結果値は文字列に追加され、キャスト値が文字列に追加されます。ブール値を文字列に追加すると、ブール値が文字列にキャストされます。数値をブール値に追加すると、ブール値が数値になります。
文字列を整数に明示的に変換するには、 parseIntメソッドを使用します。文字列を数値に明示的に変換するには、 parseFloatメソッドを使用します。
JavaScript変数の寿命:関数内で変数を宣言すると、その関数の変数のみにアクセスできます。関数を終了すると、この変数は取り消されます。この変数はローカル変数と呼ばれます。変数を宣言する関数のみが各変数を認識できるため、異なる関数で同じ名前のローカル変数を使用できます。
関数の外側の変数を宣言すると、ページ上のすべての関数が変数にアクセスできます。これらの変数の寿命は、宣言された後に始まり、ページが閉じたときに終了します。
JS変数マインドマップ
2.JSデータ型
JScriptには、3つのタイプ - >メインデータ型、2つの - >複合データ型と2つの - >特別なデータ型があります。
メイン(基本)データ型
字符串数值布尔複合(参照)データ型
对象数组特別なデータ型
Null`Undefined`文字列データ型:文字列データ型は、JScriptのテキストを表すために使用されます。 JSでは、二重引用符( "")と単一の引用( '')の両方が文字列を表すことができますが、違いはほとんどありません。ただし、文字列を示すために二重引用符( "")のみを使用することが最適と見なされます。
文字列値は、一緒に配置された一連のゼロまたはより多くのユニコード文字(文字、数字、句読点)です。
Unicodeとは何ですか?
Unicodeは、プラットフォーム、プログラム、または言語に関係なく、各文字に一意の値を提供します。 Unicodeは、世界に存在するすべての文字を処理するための統一エンコードを提供するために開発されています。
数値データ型
JScriptは内部的にすべての値を浮動小数点値として表すことを理解する必要があるため、JScriptの整数と浮動小数点値の間に違いはありません。
ブールデータ型
Boolean(論理)は、TrueまたはFalseの2つの値のみを持つことができます。
JSアレイとオブジェクト
詳細については、私の記事 - > javaScript学習概要 - 配列とオブジェクトパーツを参照してください
ヌルデータ型:変数にnull値を割り当てることにより、変数のコンテンツをクリアできます。
JScriptのtypeof演算子は、 null値をタイプnullではなくObjectタイプとして報告します。
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en"> <head> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <pittation> <pitter> </<cript> <> <> <> <titl> null); </script> </head> <body> </body> </html>
null 、まだ存在していないオブジェクトを表すために使用され、存在しないオブジェクトを返しようとする関数を表すためによく使用されます。
Undefinedデータ型:
未定義の値は、次の状況で返されます。
对象属性不存在,声明了变量但从未赋值。nullと未定義の違い
アラート(未定義のタイプ); //出力「未定義」アラート(typeof null); //出力「オブジェクト」アラート(null == undefined); //出力「true」
ECMAScriptは、未定義はnullから派生していると考えているため、それらは等しいと定義されています。
アラート(null === undefined); //出力「false」アラート(typeof null == ofof undefined); //出力「false」
nullと未定義はタイプが異なるため、出力「false」です。 and ===は絶対的な平等を意味します。
さらに、以下はより重要なデータ型 - 参照データ型です
参照データ型
JavaScript参照データ型は、ヒープメモリに格納されているオブジェクトです。 JavaScriptでは、ヒープメモリスペースの場所と操作への直接アクセスを許可しません。スタックメモリ内のオブジェクトの参照アドレスのみを操作できます。したがって、参照型データは、実際には、ヒープメモリ内のオブジェクトの参照アドレスとしてスタックメモリに保存されます。この参照アドレスを使用すると、ヒープメモリに保存されているオブジェクトをすばやく見つけることができます。
参照データ型を割り当てるプロセスを示しましょう
もちろん、OBJ2に名前属性を追加することは、実際にはヒープメモリ内のオブジェクトに名前属性を追加することです。 OBJ2とOBJ1は、スタックメモリ内のヒープメモリオブジェクトの参照アドレスのみを保存します。それらもコピーされていますが、指摘されたオブジェクトは同じです。したがって、OBJ2を変更すると、OBJ1が変化します。
基本型の値は、スタックメモリに保存されている単純なデータセグメント、つまり、そのような値がメモリに完全に保存される場所を指します。
参照型値は、ヒープメモリに保存されているオブジェクトを指します。つまり、変数は実際には単なるポインターであり、オブジェクトが保存されているメモリ内の別の場所を指します。
要するに、ヒープメモリは参照値を保存し、スタックメモリは固定型値を保存します。
ECMAScriptでは、変数には2種類の値、つまり元の値と参照値があります。
元の値がstackに保存されているデータの単純なセグメント、つまりその値は、変数にアクセスされる場所に直接保存されます。ヒープ( heap )に保存されている参照オブジェクト、つまり、変数に保存されている値は、オブジェクトが保存されているメモリを指すポインター( point )です。
<script type = "text/javascript"> var box = new object(); //参照タイプの作成var box = "lee"; //基本型値は文字列box.age = 23です。 //属性のみが属性を追加できるため、基本型値に属性を追加するのは奇妙です。アラート(box.age); //それは参照タイプではなく、出力することはできません; </script>
3.JScriptオペレーター
優先度:オペレーターの運用順序を指します。素人の用語では、最初に操作のどの部分を計算することです。
組み合わせ:レイマンの用語での同じ優先オペレーターの計算順序は、それが計算する方向から、それが左から右に右に残っているかどうかです。
データ型変換
string()to string type
number()は数値タイプに変換します
boolean()からブールタイプへ
parseInt :文字列を整数に変換します。文字列の最初から解析を開始し、最初の非整数位置での解析を停止し、前に読んだすべての整数を返します。文字列が整数から始まっていない場合、NANは返されます。たとえば、Parseint( "150 Hi")によって返される値は150で、Parseint( "Hi")によって返される値は:nanです。
parseFloat :文字列をフローティングポイント番号に変換します。文字列の最初から解析を開始し、最初の非整数位置での解析を停止し、前に読んだすべての整数を返します。文字列が整数から始まっていない場合、NANは返されます。例: parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。
eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。4.JSプロセス制御
JSプロセス制御ステートメントの場合、理解するのが難しいほんの一部です。私は他の人について詳しく説明しません。マインドマップを以下に添付しています。
1。
([オブジェクト|配列]の変数)ステートメント
パラメーター:
variable :必要なオプション。オブジェクトの属性または配列の要素のいずれかであることができる変数。
object 、 array :オプション。その上にトラバースするオブジェクトまたは配列。
statement :オプション。オブジェクトの各プロパティまたは配列の各要素に対して実行される1つ以上のステートメント。複合声明になる可能性があります。
条件付き制御ステートメント(ステートメントなど)は、複数のステートメントが実行された場合にのみコードブロックの使用を必要としますが(左ブレース "{"および右ブレース "}"で終了する)、ベストプラクティスは常にコードブロックを使用することです。
if(args)alert(args); //エラーが簡単なif(args){alert(args); //使用することをお勧めします}JSプロセス制御ステートメントマインドマップ
5.JS関数
関数は、イベントによって駆動されるか、呼び出されたときに実行されるコードの再利用可能なブロックです。
Jscript 2つの関数をサポートしています。1つは言語内の関数であり、もう1つはそれ自体で作成されます。
JavaScript関数はパラメーターを許可しません(ただし、パラメーターを含むブラケットは省略できません)。パラメーターは、関数で使用するための関数に渡すことができます。
関数の詳細については、私の記事の別の記事をご覧ください:JavaScript Learning(IV)関数パーツの概要
オブジェクトの構成
方法 - 関数:手順、動的特性 - 変数:状態、静的
最後に、高齢者によって要約されたマインドマップ: