Maison  >  Article  >  interface Web  >  Système de type JavaScript Étude d'objet de fenêtre Notes_javascript Compétences

Système de type JavaScript Étude d'objet de fenêtre Notes_javascript Compétences

WBOY
WBOYoriginal
2016-05-16 15:21:151249parcourir

L'objet window est l'objet ascendant ultime pour JavaScript dans les navigateurs Web. Il se trouve à la fin de la portée et est un objet qui contient tous les objets. Toutes les propriétés et fonctions définies dans la portée globale sont des propriétés de l'objet fenêtre

var myStringVar = 'myString';
var myFunctionVar = function(){};
console.log('myStringVar' in window);//true
console.log('myFunctionVar' in window);//true

1. Citation

Il existe généralement deux façons de référencer l'objet window. La première consiste simplement à référencer le nom donné à l'objet window ; la seconde consiste à utiliser le mot-clé this dans la portée globale

var foo ='bar';
windowRef1 = window;
windowRef2 = this;
console.log(windowRef1,windowRef2);//输出window对象的引用
console.log(windowRef1.foo,windowRef2.foo);//'bar' 'bar' 

2. Caractéristiques

L'objet window est implicite et n'est généralement pas référencé explicitement ; même si l'objet window est explicitement déclaré, il est implicite car l'objet window est le dernier de la chaîne de portée

//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. Attributs
L'objet window a un total de 18 attributs

undefined NaN Infinity 
Boolean String Number Object Array Function Date RegExp 
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError 

[Note] L'attribution de valeurs à undefined, NaN et Infinity est interdite

4. Méthode

Javascript est livré avec quelques fonctions prédéfinies, qui sont considérées comme des méthodes de l'objet fenêtre

1), méthode d'encodage

encodeURI() :Encodez l'intégralité de l'URI, en remplaçant tous les caractères invalides par un UTF-8 spécial

Il y a 82 caractères non codés dans encodeURI() :

 ! # $ & ' ( ) * , - / ; ?
encodeURIComponent() :Encoder une certaine section de l'URI (couramment utilisée pour passer des paramètres dans la méthode GET), en remplaçant tous les caractères invalides par un UTF-8 spécial

De manière générale, utilisez plus encodeURIComponent() que encodeURI() car en pratique, il est plus courant d'interroger des paramètres de chaîne plutôt que d'encoder l'URI sous-jacent. Il y a 71 caractères non codés dans encodeURIComponent() :

!' ( ) * - 0-9 a-z A-Z.
escape():Encodez la chaîne et convertissez l'encodage Unicode du caractère en une séquence hexadécimale

L'utilisation de escape() est opposée dans ES3, et il est recommandé d'utiliser à la place encodeURI et encodeURIComponent. Cependant, escape() est encore largement utilisé pour l'encodage des cookies, car escape() encode des caractères illégaux dans les cookies et. est souvent utilisé dans les chemins. Les apparitions de "/" ne sont pas codées. Il y a 69 caractères non codés pour escape() :

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

decodeURIComponent() :decode encodeURIComponent()

unescape():Décoder 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()

La méthode eval() est comme un analyseur ECMAScript complet, n'acceptant qu'un seul paramètre, la chaîne JavaScript à exécuter. Lorsque l'analyseur découvre que la méthode eval() est appelée dans le code, il analysera les paramètres entrants en tant qu'instructions ECMAScript réelles, puis insérera les résultats de l'exécution dans la position d'origine. La capacité de la méthode eval() à interpréter des chaînes est très puissante, mais aussi très dangereuse. Lorsqu'il est utilisé pour saisir des données utilisateur, un utilisateur malveillant peut saisir du code qui menace les caractères du site ou de l'application, appelé injection de code

[Note] En mode strict, toutes les variables ou fonctions créées dans eval() ne sont pas accessibles en externe, et attribuer une valeur à eval provoquera également une erreur

2), méthode numérique

Il existe quatre méthodes numériques sous l'objet Window : isFinite(), isNaN(), parseFloat() et parseInt()

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn