Javascriptグローバルオブジェクト_基礎知識
Global对象
Global对象是ECMAScript中最特别的对象,因为实际上它根本不存在。如果尝试编写下面的代码,将得到错误:
错误消息显示Global不是对象,但刚才不是说Global是对象吗?没错。这里需要理解的主要概念是,在ECMAScript中,不存在独立的函数,所有函数都必须是某个对象的方法。本书前面介绍的函数,如isNaN()、isFinite()、parseInt()和parseFloat()等,看起来都像独立的函数。实际上,它们都是Global对象的方法。而且Global对象的方法不止这些。
encodeURI()和encodeURIComponent()方法用于编码传递给浏览器的URI(统一资源标识符)。有效的URI不能包含某些字符,如空格。这两个方法用于编码URI,这样用专门的UTF-8编码替换所有的非有效字符,就可以使浏览器仍能够接受并理解它们。
encodeURI()方法用于处理完整的URI(例如,http://www.wrox.com/illegal value.htm),而encodeURIComponent()用于处理URI的一个片断(如前面的URI中的illegal value.htm)。这两个方法的主要区别是encodeURI()方法不对URI中的特殊字符进行编码,如冒号、前斜杠、问号和英镑符号,而encodeURIComponent()则对它发现的所有非标准字符进行编码。例如:
这段代码输出两个值:
可以看到,除空格外,第一个URI无任何改变,空格被替换为%20。第二个URI中的所有非字母数字字符都被替换成它们对应的编码,基本上使这个URI变得无用。这就是encodeURI()可以处理完整URI,而encodeURIComponent()只能处理附加在已有URI末尾的字符串的原因。
自然,还有两个方法用于解码编码过的URI,即decodeURI()和decodeURIComponent()。如你所料,这两个方法所做的恰与其对应的方法相反。decodeURI()方法只对用encodeURI()方法替换的字符解码。例如,%20将被替换为空格,而%23不会被替换,因为它表示的是英镑符号(#),encodeURI()并不替换这个符号。同样的,decodeURIComponent()会解码所有encodeURIComponent()编码过的字符,意味着它将对所有的特殊值解码。例如:
这段代码输出两个值:
在这个例子中,变量uri存放的是用encodeURIComponent()编码的字符串。生成的值说明了应用两个解码方法时会发生的事情。第一个值由decodeURI()输出,把%20替换成空格。第二个值由decodeURIComponent()输出,替换所有的特殊。
这些URI方法encodeURI()、encodeURIComponent()、decodeURI()和decodeURICom- ponent()代替了BOM的escape()和unescape()方法。URI方法更可取,因为它们会对所有Unicode符号编码,而BOM方法只能对ASCII符号正确编码。尽量避免使用escape()和unescape()方法。
最後のメソッドは、おそらく ECMAScript 言語全体で最も強力なメソッドである eval() メソッドです。このメソッドは ECMAScript インタープリタ全体と似ており、実行される ECMAScript (または JavaScript) 文字列である 1 つのパラメータを受け入れます。例:
このコード行は、次のコードと機能的に同等です:
インタプリタは eval() 呼び出しを見つけると、引数を実際の ECMAScript ステートメントとして解釈し、関数が存在する場所に挿入します。これは、 eval() 呼び出し内で参照される変数はパラメータの外で定義できることを意味します:
ここでは、変数 msg が eval() 呼び出しのコンテキストの外で定義されており、コードの 2 行目が実際のコード行に置き換えられるため、警告には依然として「hello world」というテキストが表示されます。同様に、関数または変数を eval() 呼び出し内で定義し、関数の外側のコードで参照することができます:
ここでは、関数 SayHi() が eval() 呼び出し内で定義されています。呼び出しは実際の関数に置き換えられるため、次の行でも SayHi() を呼び出すことができます。
この機能は非常に強力ですが、非常に危険でもあります。 eval() を使用するとき、特にユーザーが入力したデータを渡すときは、細心の注意を払ってください。悪意のあるユーザーは、サイトまたはアプリケーションのセキュリティを侵害する値を挿入する可能性があります (コード インジェクションと呼ばれます)。
グローバル オブジェクトにはメソッドだけでなくプロパティもあります。未定義、NaN、Infinity という特別な値を覚えていますか?これらはすべて Global オブジェクトのプロパティです。さらに、すべてのローカル オブジェクトのコンストラクターもグローバル オブジェクトのプロパティです。次の表では、Global オブジェクトのすべてのプロパティについて詳しく説明します:
属性
|
セイ・ミン |
||||||||||||||||||||||||||||||||||||||
未定義 | 未定義型のリテラル | ||||||||||||||||||||||||||||||||||||||
NaN | 数値ではない特殊な数値 | ||||||||||||||||||||||||||||||||||||||
無限 | 無限大の特別な数値 | ||||||||||||||||||||||||||||||||||||||
オブジェクト | オブジェクトのコンストラクター | ||||||||||||||||||||||||||||||||||||||
配列 | 配列のコンストラクター | ||||||||||||||||||||||||||||||||||||||
関数 | 関数のコンストラクター | ||||||||||||||||||||||||||||||||||||||
ブール値 | ブールコンストラクター | ||||||||||||||||||||||||||||||||||||||
文字列 | 文字列のコンストラクター | ||||||||||||||||||||||||||||||||||||||
番号 | 数値のコンストラクター | ||||||||||||||||||||||||||||||||||||||
日付 | 日付のコンストラクター | ||||||||||||||||||||||||||||||||||||||
![]() |
RegExp のコンストラクター | ||||||||||||||||||||||||||||||||||||||
エラー | エラーのコンストラクター | ||||||||||||||||||||||||||||||||||||||
EvalError | EvalError のコンストラクター | ||||||||||||||||||||||||||||||||||||||
範囲エラー | RangeError のコンストラクター | ||||||||||||||||||||||||||||||||||||||
参照エラー | ReferenceError のコンストラクター | ||||||||||||||||||||||||||||||||||||||
構文エラー | SyntaxError のコンストラクター | ||||||||||||||||||||||||||||||||||||||
タイプエラー | TypeError のコンストラクター | ||||||||||||||||||||||||||||||||||||||
URIエラー | URIError のコンストラクター |

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが
