function b (d){
alert(this.v);
b();//出力:
window.b() ;//出力:
b.call(b1 );//出力:
b.apply(b2);//出力:
字句スコープ。平たく言えば、JavaScript 変数のスコープは実行時ではなく定義時に決定されます。つまり、字句スコープはソース コードに依存し、コンパイラーは静的解析を通じてそれを決定できるため、字句スコープはソース コードに依存します。スコープは静的スコープ (静的スコープ) とも呼ばれます。ただし、with と eval のセマンティクスは静的技術だけでは実現できないため、JavaScript のスコープ機構は字句スコープに非常に近いとしか言えません。
JavaScript エンジンは新しいスコープを作成します。各関数インスタンスを実行するときの関数。実行環境には呼び出しオブジェクトが含まれます
呼び出しオブジェクトは scriptObject 構造体 (scriptObject は関数インスタンスのライフサイクルと一致する、関数に関連する静的システムのセットです) であり、内部変数テーブル varDecls を保存するために使用されます。埋め込み関数テーブル funDecls、親参照リスト upvalue、およびその他の構文解析構造 (varDecls や funDecls などの情報は構文解析段階で取得され、構文ツリーに保存されることに注意してください。関数インスタンスが実行されると、この情報は削除されます) scriptObject にコピーされた構文ツリーから)。
apply と call: この 2 つの機能は、関数を別のオブジェクトにバインドして実行することです。
apply(thisArg,argArray); call(thisArg[,arg1,arg2…]]);
つまり、すべての関数内の this ポインターは thisArg に割り当てられ、関数を別のオブジェクトのメソッドとして実行するという目的を達成できます。
適用の手順
argArray が有効な配列でない場合、または引数オブジェクトではない場合、TypeError が発生します。 argArray も thisArg も指定されていない場合は、Global オブジェクトが thisArg として使用され、引数を渡すことはできません。
呼び出しの説明
call メソッドは、関数のオブジェクト コンテキストを初期コンテキストから thisArg で指定された新しいオブジェクトに変更します。 thisArg パラメータが指定されていない場合は、Global オブジェクトが thisArg として使用されます。
ポイント:
call と apply を適用するには別のトリックがあります。それは call と apply を使用することです。別の関数 (クラス) を適用すると、現在の関数 (クラス) は他の関数 (クラス) のメソッドまたは属性を持ちます。
ブラウジングによって実行されるJavaScriptでは、オブジェクトのスコープはデフォルトでウィンドウです。
c.run();
window.c.run();
JavaScript のシステム関数 (グローバル クラス)
encodeURI メソッドと encodeURIComponent メソッド URI文字列をエンコードした結果を返します。
decodeURI メソッドと decodeURIComponent() メソッド
エンコードされた URI 文字列を元の文字列にデコードして返します。
parseInt メソッド
指定された基数に従って文字列を整数に変換します。構文形式は parseInt(numString, [radix]) です。 2 番目の引数が指定されていない場合、「0x」の接頭辞が付いている文字列は 16 進数として扱われ、「0」の接頭辞が付いている文字列は 8 進数として扱われ、その他すべての文字列は 10 進数として扱われます。
parseFloat メソッド
文字列を対応する 10 進数に変換します。
isNaN メソッド
は、parseInt メソッドと parseFloat メソッドの戻り値が NaN であるかどうかを検出するために使用されます。
エスケープメソッド
文字列をエンコードした後の結果文字列を返します。すべてのスペース、句読点、アクセント、およびその他の非 ASCII 文字は、%xx エンコードで置き換えられます。xx は、文字の Unicode エンコードを表す 16 進数に等しく、文字値が 255 を超える文字は、 %uxxxx 形式。
unescape メソッド
escape メソッドでエンコードされた結果文字列を元の文字列にデコードして返します。
eval メソッド
は、パラメーター文字列を JavaScript 式として実行します。
JavaScript 内部クラス
動的オブジェクト
そのプロパティとメソッドにアクセスするには、「オブジェクト インスタンス名.メンバー」の形式を使用します。
静的オブジェクト
「オブジェクト名.メンバー」の形式を直接使用して、そのプロパティとメソッドにアクセスします。
オブジェクト クラス (オブジェクト)
数値クラス (オブジェクト)
文字列クラス (オブジェクト)
数学クラス (オブジェクト)
日付クラス (オブジェクト)
toString メソッド
オブジェクト クラス
オブジェクト クラスは、すべての JavaScript クラスの基本クラスであり、プログラマがコンストラクターを定義することなくカスタム オブジェクトを作成する簡単な方法を提供します。 主な属性:
constructor - オブジェクトのコンストラクター
prototype - クラスのプロトタイプ オブジェクト、静的プロパティを取得します
主なメソッド:
hasOwnProperty(property) - オブジェクトに属するかどうかこのクラスによって定義されるプロパティ
isPrototypeOf(object) - 指定されたクラスのプロトタイプであるかどうか
propertyIsEnumerable(property) - 列挙可能なプロパティであるかどうか
toString() - オブジェクトに対応する文字列を返します
valueOf() - 対応するオブジェクトのプリミティブ型の値を返します
Number クラス
Number クラスは、いくつかの静的メンバーと数値処理メソッドを含みます。
静的属性:
MAX_VALUE、MIN_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY、NaN
主なメソッド:
toFixed(n) - 小数点以下の桁数を取得し、自動的に四捨五入します
toPrecision(n) - かどうか指定されています。 クラスのプロトタイプ
propertyIsEnumerable(property) - プロパティが列挙可能かどうか
toString() - オブジェクトに対応する文字列を返します
valueOf() - オブジェクトに対応する元の型の値を返します
文字列クラス length 属性
anchor、big、bold、fontcolor、link およびその他のメソッド
charAt メソッド
注: の最初の文字のインデックス位置文字列は 0 などです。
charCodeAt メソッド
注: 返される結果は、文字の Unicode エンコーディングです。
concat メソッド、接続文字列
indexOf メソッドおよび lastIndexOf メソッド
match、search メソッド
replace、split メソッド
slice メソッド
説明: str1.slice ( 0) と str1.slice(0,-1) はどちらも文字列全体を返します。
substr, substring メソッド
substring メソッドによって返される内容には、終了位置の文字は含まれません。
toLowerCase、toUpperCase メソッド
数学クラス 属性:
E は、数学定数 e を表し、これは 2.718 にほぼ等しくなります。
LN10 は 10 の自然対数を表し、2.302 にほぼ等しくなります。
LN2 は 2 の自然対数を表し、0.693 にほぼ等しくなります。
PI は数学定数 ∏ の値を表し、3.14159 にほぼ等しくなります。
SQRT1-2 は 2 の平方根の 4 分の 1 を表し、ほぼ 0.707 に等しくなります。
SQRT2 は 2 の平方根を表し、1.414 にほぼ等しくなります。
メソッド:
abs メソッド。数値の絶対値を返します。
sin メソッドと cos メソッドは、それぞれ数値のサイン値とコサイン値を返します。
asin メソッドと acos メソッドは、それぞれ数値の逆正弦値と逆余弦値を返します。
random メソッドは、0 から 1 までの擬似乱数を返します。
Math オブジェクトは静的クラスです。new キーワードを使用してオブジェクト インスタンスを作成することはできません。「object」の形式を使用して直接アクセスする必要があります。 name.member" そのプロパティまたはメソッド (例: var num = Math.random();
Date クラス
toGMTString メソッドは、日付オブジェクト インスタンス。文字列はグリニッジ標準時 (GMT) 形式です (たとえば、「05 Jan 1996 00:00:00 GMT」)。
get Year、getMonth、getDate、getDay メソッド
getHours、getMinutes、getSeconds、getMilliseconds メソッド
getTime メソッドは、1970 年 1 月 1 日 0:00:00 から Date オブジェクト インスタンスの代表値までの日付を返します。時刻までのミリ秒。
構築メソッド: Date()、Date(dateVal)、Date(年、月、日付[、時間[、分[、秒[,ms] ]]] ])
parse メソッドは、日付と時刻を表す文字列を分析し、それが表す時間値を返します。これは、1970 年 1 月 1 日 0:00:00 からのミリ秒単位で表されます。 parse メソッドは静的メソッドです。
toString メソッド
toString メソッドは、JavaScript のすべての内部オブジェクトのメンバー メソッドであり、その主な機能は、オブジェクト内のデータを特定の形式の文字列に変換することです。 、具体的な変換方法はオブジェクトの種類によって異なります。
例: コードをコピー
コードは次のとおりです: < ; スクリプト言語 ="javascript"> var x = 328;alert("hex=" x.toString(16) " bin=" x.toString(2)); script>
Array クラス
3 つの構築メソッド:
Array()
Array(4)
Array(3.5,"abc",3)
配列の並べ替えの例:
コードをコピー