ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript型システム Windowオブジェクト学習メモ_JavaScriptスキル

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

WBOY
WBOYオリジナル
2016-05-16 15:21:151294ブラウズ

ウィンドウ オブジェクトは、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 つのデジタル メソッドがあります

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。