JavaScriptのグローバルリファレンスマニュアル
JavaScriptのグローバル属性と関数はすべての内蔵JavaScriptオブジェクトで使用できます。
JavaScriptのグローバル属性
属性 | 説明 |
---|---|
Infinity | 正/負無限大の数値を示します。 |
NaN | 「非数字」("Not-a-Number")値。 |
undefined | 変数に値がまだ割り当てられていないことを示します。 |
JavaScriptのグローバル関数
関数 | 説明 |
---|---|
decodeURI() | URIをデコードします。 |
decodeURIComponent() | URIコンポーネントをデコードします。 |
encodeURI() | URIをエンコードします。 |
encodeURIComponent() | URIコンポーネントをエンコードします。 |
escape() | バージョン1.5で廃止されました。以下を使用してください encodeURI() または encodeURIComponent() 代替 |
eval() | 文字列を評価し、スクリプトコードのように実行します。 |
isFinite() | 値が有限な合法数かどうかを確認します。 |
isNaN() | 値が無効な数字かどうかを確認します。 |
Number() | オブジェクトの値を数字に変換します。 |
parseFloat() | 文字列を解析して浮動小数点数を返します。 |
parseInt() | 文字列を解析して整数を返します。 |
String() | オブジェクトの値を文字列に変換します。 |
unescape() | バージョン1.5で廃止されました。以下を使用してください decodeURI() または decodeURIComponent() 代替 |
関数かメソッドか?
グローバル関数を呼び出すのではなく、グローバルメソッドを呼び出すことは意味があります。なぜなら、関数はグローバルで呼び出されるだけでなく、任何のオブジェクトではありません。
いかなる場合でも、これらの関数メソッドを呼び出すこともできます。なぜなら、それらはその実行環境のグローバルオブジェクトのメソッドだからです。Webブラウザでは、グローバルオブジェクトはブラウザのウィンドウです。したがって、isNaN()は実際にはウィンドウメソッドです:window.isNaN()。
グローバルオブジェクトの説明
グローバルオブジェクトは、JavaScriptのグローバル関数やグローバル属性の占位符として事前に定義されたオブジェクトです。グローバルオブジェクトを使用することで、すべての他の事前に定義されたオブジェクト、関数、属性にアクセスできます。グローバルオブジェクトは任何のオブジェクトの属性ではありませんので、名前を持っていません。
トップレベルのJavaScriptコードでは、キーワードthisを使ってグローバルオブジェクトを参照できますが、通常はこの方法でグローバルオブジェクトを参照する必要はありません。なぜなら、グローバルオブジェクトはスコープチェーンの先頭に位置しているため、すべての非限定的な変数や関数名はそのオブジェクトの属性として検索されます。例えば、JavaScriptコードがparseInt()関数を参照する場合、それはグローバルオブジェクトのparseInt属性を参照しています。グローバルオブジェクトがスコープチェーンの先頭にあるということは、トップレベルのJavaScriptコードで宣言されたすべての変数がグローバルオブジェクトの属性になることを意味します。
グローバルオブジェクトは単なるオブジェクトであり、クラスではありません。構造関数もなく、新しいグローバルオブジェクトをインスタンス化することもできません。
JavaScript コードが特別な環境に埋め込まれた場合、グローバルオブジェクトは通常、その環境固有の属性を持っています。実際には、ECMAScript 標準ではグローバルオブジェクトのタイプは規定されていません。JavaScript の実装や埋め込まれた JavaScript は、ここに示される基本的な属性と関数が定義されている任意のオブジェクトをグローバルオブジェクトとして使用できます。例えば、LiveConnectやその関連技術を通じてJavaをスクリプト化できるJavaScriptの実装では、グローバルオブジェクトはここに示されるjavaとPackage属性およびgetClass()メソッドを持たれています。また、クライアントサイドのJavaScriptでは、グローバルオブジェクトはWindowオブジェクトであり、JavaScriptコードが実行できるWebブラウザのウィンドウを表しています。
例
JavaScript 核心言語では、グローバルオブジェクトの事前定義属性はすべてインデクス不可です。したがって、以下のようにすべての暗黙的または明示的に宣言されたグローバル変数を for/in ループでリストすることができます:
var variables = ""; for (var name in this) { variables += name + "<br />"; } document.write(variables);