JavaScript型システム Windowオブジェクト学習メモ_JavaScriptスキル

WBOY
リリース: 2016-05-16 15:21:15
オリジナル
1248 人が閲覧しました

ウィンドウ オブジェクトは、Web ブラウザーにおける JavaScript の究極のボトムアップ オブジェクトであり、スコープの最後にあり、すべてのオブジェクトを含むオブジェクトです。グローバル スコープで定義されたすべてのプロパティと関数は、ウィンドウ オブジェクトのプロパティです

var myStringVar = 'myString';
var myFunctionVar = function(){};
console.log('myStringVar' in window);//true
console.log('myFunctionVar' in window);//true
ログイン後にコピー

1. 引用

通常、ウィンドウ オブジェクトを参照するには 2 つの方法があります。 1 つ目は、ウィンドウ オブジェクトに指定された名前を単に参照することです。2 つ目は、グローバル スコープ

で this キーワードを使用することです。
var foo ='bar';
windowRef1 = window;
windowRef2 = this;
console.log(windowRef1,windowRef2);//输出window对象的引用
console.log(windowRef1.foo,windowRef2.foo);//'bar' 'bar' 

ログイン後にコピー

2. 特徴

ウィンドウ オブジェクトは暗黙的であり、通常は明示的に参照されません。ウィンドウ オブジェクトが明示的に宣言されている場合でも、ウィンドウ オブジェクトはスコープ チェーンの最後のオブジェクトであるため、暗黙的になります。

//window.alert()和alert()语句基本上是相同的
var foo = {//window对象在这里是隐式的,window.foo
 fooMethod: function(){
  alert('foo' + 'bar');//window对象在这里是隐式的,window.alert
  window.alert('foo' + 'bar');//显式调用window对象,效果一样
 }
}
foo.fooMethod();//window对象在这里是隐式的,window.foo.fooMethod()


ログイン後にコピー

3. 属性 ウィンドウ オブジェクトには合計 18 個の属性があります

undefined NaN Infinity 
Boolean String Number Object Array Function Date RegExp 
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError 
ログイン後にコピー
【注意】unknown、NaN、Infinityへの値の代入は禁止です

4. 方法

JavaScript には、ウィンドウ オブジェクトのメソッドとみなされる、いくつかの事前定義関数が付属しています

1)、エンコード方式

encodeURI():すべての無効な文字を特殊な UTF-8 に置き換えて、URI 全体をエンコードします

encodeURI() には 82 個のエンコードされていない文字があります:

! # $ & ' ( ) * + , - : = ? @ _ ~ 0-9 a-z A-Z
encodeURIComponent():URI の特定のセクション (GET メソッドでパラメーターを渡すために一般的に使用されます) をエンコードし、すべての無効な文字を特殊な UTF-8 に置き換えます。

一般に、encodeURI() よりも encodeURIComponent() を使用してください。これは、実際には、基になる URI をエンコードするよりも文字列パラメーターをクエリする方が一般的であるためです。 encodeURIComponent() には 71 個のエンコードされていない文字があります:

! ' ( ) * - _ ~ 0-9 a-z A-Z
escape():文字列をエンコードし、文字の Unicode エンコードを 16 進シーケンスに変換します

ES3 では、escape() の使用が反対されており、代わりに encodeURI と encodeURIComponent を使用することが推奨されています。ただし、escape() は Cookie 内の不正な文字をエンコードしてしまうため、依然として Cookie エンコードに広く使用されています。 「/」の出現はエンコードされません。 escape() には 69 個のエンコードされていない文字があります:

* + - . / @ _ 0-9 a-z A-Z
decodeURI():decode encodeURI()

decodeURIComponent():decode encodeURIComponent()

unescape():Decodescape()

var uri = "http://www.wrox.com/illegal value.htm#start";
console.log(encodeURI(uri));//http://www.wrox.com/illegal%20value.htm#start
console.log(encodeURIComponent(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start
console.log(escape(uri));//http%3A//www.wrox.com/illegal%20value.htm%23start
var uri = 'http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start';
console.log(decodeURI(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23start
console.log(decodeURIComponent(uri));//http://www.wrox.com/illegal value.htm#start
console.log(unescape(uri));//http://www.wrox.com/illegal value.htm#start
ログイン後にコピー

eval()

eval() メソッドは完全な ECMAScript パーサーのようなもので、パラメータを 1 つだけ受け入れ、実行される JavaScript 文字列を受け取ります。パーサーは、コード内で eval() メソッドが呼び出されていることを検出すると、受信パラメータを実際の ECMAScript ステートメントとして解析し、実行結果を元の位置に挿入します。 eval() メソッドの文字列を解釈する機能は非常に強力ですが、非常に危険でもあります。ユーザー入力データの実行に使用されると、悪意のあるユーザーがサイトやアプリケーションのキャラクターを脅かすコードを入力する可能性があります。これはコードインジェクションと呼ばれます

[注意] strict モードでは、eval() で作成された変数や関数には外部からアクセスできず、eval に値を代入するとエラーが発生します

2)、デジタル方式

Window オブジェクトの下には、isFinite()、isNaN()、parseFloat()、および parseInt() の 4 つのデジタル メソッドがあります

以上がこの記事の全内容です。皆様の学習のお役に立てれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!