javascriptタイプシステムWindow対象学習ノート
3372 ワード
windowオブジェクトは、Webブラウザのjavascriptの最終的なポケットオブジェクトであり、スコープの中では、最も端に位置し、すべてのオブジェクトを含むオブジェクトです.グローバルスコープで定義されている属性と関数はすべてwindowオブジェクトの属性です.
1、引用
通常はwindowオブジェクトを引用する二つの方法があります.一つ目は簡単に引用してwindowの対象の名称を与えることです.二つ目はグローバルスコープにthisキーワードを使うことです.
windowオブジェクトは暗黙的で、通常は明示的に引用されません.たとえwindowオブジェクトが明示的に声明しても、それは陰的なものです.
4、方法
Javascriptにはいくつかの事前定義関数が付いています.windowオブジェクトとして認識される方法です.
1)符号化方法
エンコーディング():全体のURIをエンコードし、無効な文字を特殊なUTF-8で置換します.
エンカウント()の非符号化文字は82文字あります.
!ヽoo.....................................................()*+,-/:=?@~.0-9 a-z A-Z encodeURIComponent():URIのあるセグメントを符号化し(GET方法でパラメータを伝達するのが一般的)、無効な文字をすべて特殊なUTF-8で置換する
一般的には、エンコーディングではなく、エンコーディングを使用するほうがエンコーディングよりも多くなります.エンカウントのエンコードされていない文字は71文字あります.
! ' ()*-._~0-9 a-z A-Z escape():文字列をエンコードし、文字のunicodeコードを16進シーケンスに変換します.
ES 3ではescapeの使用に反対し、encodeURIとencodeURIComponentで代替することを提案していますが、escape()は依然としてcookieの符号化に広く使われています.escape()の非符号化文字は69文字あります.
*+-/@_0-9 a-z A-Z decodeURI():復号encodeURI()
デコードencodeURIComponent()
unescape():復号escape()
eval()メソッドは完全なECMAScript解析器のように、一つのパラメータ、すなわち実行するJavaScript文字列しか受け入れられません.解析器がコード内でeval()メソッドを呼び出すと、入力されたパラメータを実際のECMAScript文として解析し、実行結果を元の位置に挿入します.eval()メソッドは文字列を説明する能力が非常に強いが、非常に危険である.これを使ってユーザーがデータを入力すると、サイトやアプリケーションの文字を脅かすコードを悪意のあるユーザーが入力する可能性があります.いわゆるコード注入です.
[注意]厳格なモードでは、外部からeval()で作成された変数や関数にアクセスできないため、evalの割り当てにもエラーが発生します.
2)、数字の方法
Windowオブジェクトの下には、isfinite()、isNaN()、パーパーパーパーファーストFloat()、パーrseInt()の4つの数字に関する方法があります.
以上が本文の全部です.皆さんの勉強に役に立ちたいです.
var myStringVar = 'myString';
var myFunctionVar = function(){};
console.log('myStringVar' in window);//true
console.log('myFunctionVar' in window);//true
1、引用
通常はwindowオブジェクトを引用する二つの方法があります.一つ目は簡単に引用してwindowの対象の名称を与えることです.二つ目はグローバルスコープにthisキーワードを使うことです.
var foo ='bar';
windowRef1 = window;
windowRef2 = this;
console.log(windowRef1,windowRef2);// window
console.log(windowRef1.foo,windowRef2.foo);//'bar' 'bar'
2、特性windowオブジェクトは暗黙的で、通常は明示的に引用されません.たとえwindowオブジェクトが明示的に声明しても、それは陰的なものです.
//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、属性windowオブジェクトは全部で18の属性があります.
undefined NaN Infinity
Boolean String Number Object Array Function Date RegExp
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
[注意]undefined、NaN、Infinityへの割当は禁止されています.4、方法
Javascriptにはいくつかの事前定義関数が付いています.windowオブジェクトとして認識される方法です.
1)符号化方法
エンコーディング():全体のURIをエンコードし、無効な文字を特殊なUTF-8で置換します.
エンカウント()の非符号化文字は82文字あります.
!ヽoo.....................................................()*+,-/:=?@~.0-9 a-z A-Z encodeURIComponent():URIのあるセグメントを符号化し(GET方法でパラメータを伝達するのが一般的)、無効な文字をすべて特殊なUTF-8で置換する
一般的には、エンコーディングではなく、エンコーディングを使用するほうがエンコーディングよりも多くなります.エンカウントのエンコードされていない文字は71文字あります.
! ' ()*-._~0-9 a-z A-Z escape():文字列をエンコードし、文字のunicodeコードを16進シーケンスに変換します.
ES 3ではescapeの使用に反対し、encodeURIとencodeURIComponentで代替することを提案していますが、escape()は依然としてcookieの符号化に広く使われています.escape()の非符号化文字は69文字あります.
*+-/@_0-9 a-z A-Z decodeURI():復号encodeURI()
デコードencodeURIComponent()
unescape():復号escape()
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解析器のように、一つのパラメータ、すなわち実行するJavaScript文字列しか受け入れられません.解析器がコード内でeval()メソッドを呼び出すと、入力されたパラメータを実際のECMAScript文として解析し、実行結果を元の位置に挿入します.eval()メソッドは文字列を説明する能力が非常に強いが、非常に危険である.これを使ってユーザーがデータを入力すると、サイトやアプリケーションの文字を脅かすコードを悪意のあるユーザーが入力する可能性があります.いわゆるコード注入です.
[注意]厳格なモードでは、外部からeval()で作成された変数や関数にアクセスできないため、evalの割り当てにもエラーが発生します.
2)、数字の方法
Windowオブジェクトの下には、isfinite()、isNaN()、パーパーパーパーファーストFloat()、パーrseInt()の4つの数字に関する方法があります.
以上が本文の全部です.皆さんの勉強に役に立ちたいです.