Das Fensterobjekt ist das ultimative Bottom-up-Objekt für JavaScript in Webbrowsern. Es befindet sich am Ende des Gültigkeitsbereichs und ist ein Objekt, das alle Objekte enthält. Alle im globalen Bereich definierten Eigenschaften und Funktionen sind Eigenschaften des Fensterobjekts
var myStringVar = 'myString'; var myFunctionVar = function(){}; console.log('myStringVar' in window);//true console.log('myFunctionVar' in window);//true
1. Zitat
Normalerweise gibt es zwei Möglichkeiten, auf das Fensterobjekt zu verweisen. Die erste besteht darin, einfach auf den Namen des Fensterobjekts zu verweisen. Die zweite besteht darin, das Schlüsselwort this im globalen Bereich
zu verwendenvar foo ='bar'; windowRef1 = window; windowRef2 = this; console.log(windowRef1,windowRef2);//输出window对象的引用 console.log(windowRef1.foo,windowRef2.foo);//'bar' 'bar'
2. Funktionen
Das Fensterobjekt ist implizit und wird normalerweise nicht explizit referenziert; selbst wenn das Fensterobjekt explizit deklariert wird, ist es implizit, da das Fensterobjekt das letzte in der Bereichskette ist
//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. Attribute
Das Fensterobjekt verfügt über insgesamt 18 Attribute
undefined NaN Infinity Boolean String Number Object Array Function Date RegExp Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
[Hinweis] Das Zuweisen von Werten zu undefiniert, NaN und Unendlich ist verboten
4. Methode
Javascript verfügt über einige vordefinierte Funktionen, die als Methoden des Fensterobjekts gelten
1), Kodierungsmethode
encodeURI():Kodieren Sie den gesamten URI und ersetzen Sie alle ungültigen Zeichen durch spezielles UTF-8
Es gibt 82 nicht codierte Zeichen in encodeURI():
! # $ & ' ( ) * , - : ?
encodeURIComponent():Kodieren Sie einen bestimmten Abschnitt des URI (wird üblicherweise zum Übergeben von Parametern in der GET-Methode verwendet) und ersetzen Sie alle ungültigen Zeichen durch spezielles UTF-8
! ' ( ) * - _ ~ 0-9 a-z A-Z
escape():Kodieren Sie die Zeichenfolge und konvertieren Sie die Unicode-Kodierung des Zeichens in eine Hexadezimalsequenz
* - . / @ _ 0-9 a-z A-Z
decodeURI():decode encodeURI()
decodeURIComponent():decode encodeURIComponent()
unescape():Escape() dekodieren
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()
Die eval()-Methode ist wie ein vollständiger ECMAScript-Parser und akzeptiert nur einen Parameter, den auszuführenden JavaScript-String. Wenn der Parser feststellt, dass die Methode eval() im Code aufgerufen wird, analysiert er die eingehenden Parameter als tatsächliche ECMAScript-Anweisungen und fügt dann die Ausführungsergebnisse an der ursprünglichen Position ein. Die Fähigkeit der eval()-Methode, Zeichenfolgen zu interpretieren, ist sehr leistungsfähig, aber auch sehr gefährlich. Wenn es zur Eingabe von Benutzerdaten verwendet wird, kann ein böswilliger Benutzer Code eingeben, der die Website- oder Anwendungszeichen bedroht, was als Code-Injection bezeichnet wird[Hinweis] Im strikten Modus kann auf alle in eval() erstellten Variablen oder Funktionen nicht extern zugegriffen werden, und das Zuweisen eines Werts zu eval führt ebenfalls zu einem Fehler
2), digitale Methode
Es gibt vier digitale Methoden unter dem Window-Objekt: isFinite(), isNaN(), parseFloat() und parseInt()Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.