Maison  >  Article  >  interface Web  >  Quels sont les points de connaissances qui expliquent en détail le mode strict de JS ?

Quels sont les points de connaissances qui expliquent en détail le mode strict de JS ?

亚连
亚连original
2018-06-04 11:17:121512parcourir

Cet article a compilé des points de connaissances pertinents et des exemples de code en mode strict JS. Si vous êtes intéressé, apprenons ensemble.

Le mode dit strict est en fait une chaîne qui ne sera affectée à aucune variable "use strict"

Si cette invite est donnée dans la portée globale, l'ensemble du script l'utilisera. mode strict. Vous pouvez également activer le mode strict uniquement dans la fonction

1 Il n'y a pas de variables globales en mode strict

a="test"

. Il y aura en mode strict Une erreur est signalée, normal en mode non strict

2 Supprimer la variable

var Il existe trois situations de déclaration

    .
  • var déclarées Variables globales

  • var Variables locales déclarées dans

  • Variables globales déclarées dans eval()

Les premier et deuxième cas ne peuvent pas être supprimés en utilisant delete.

Tout d'abord, bien que l'objet global déclaré dans le premier cas soit un attribut de windows, cet attribut a configurable=false et ne peut donc pas être supprimé

Dans le deuxième cas, les variables locales sont encore pires. Personne ne connaît l'objet attaché, comment le supprimer

Le troisième cas eval() sera abordé plus tard.

Retour au sujet. C'est-à-dire qu'en mode non strict, vous pouvez supprimer des variables, mais cela échouera et renverra false.

La suppression de variables en mode strict signalera une erreur.

3. Objet

Lors de l'utilisation de l'objet dans les circonstances suivantes, une erreur sera signalée

  1. Attribution d'une valeur à un attribut en lecture seule signalera une erreur

  2. L'utilisation de la suppression pour des propriétés non configurables signalera une erreur

  3. L'ajout de propriétés pour des propriétés non configurables les objets extensibles signaleront une erreur

  4. Lors de l'utilisation de littéraux d'objet, les noms de propriété doivent être uniques. Par exemple,

var person={
  name:"1",
  name:"2"
}

prendra par défaut la deuxième valeur en mode non strict et une erreur sera signalée en mode strict.

4. Fonction

Le mode strict nécessite que les noms des paramètres de fonction soient uniques

function(n,n){
  // todo
}

En mode non strict, cette déclaration de fonction sera ne signale pas d'erreur, seul le deuxième paramètre est accessible via le nom du paramètre et le premier paramètre doit être accessible via des arguments.

les arguments sont également différents dans les deux modes.

En mode non strict, la modification de la valeur du paramètre nommé sera répercutée dans l'objet arguments. En mode strict, les deux valeurs. sont indépendants.

Suppression de arguments.callee (faisant référence à la fonction elle-même) et arguments.caller (faisant référence à la fonction appelante).

En mode strict, les noms de fonctions ne peuvent pas utiliser de mots réservés js

** En mode strict, les fonctions ne peuvent être déclarées qu'au niveau supérieur du script et à l'intérieur de la fonction. une instruction if provoquera une erreur de syntaxe. **

if(true){
  function(){
   // 严格模式下报错
}
}

5.this

Lors de l'utilisation de la fonction apply(), call() en mode non strict, en passant des valeurs nulles ou non définies sera Convertir en objet global. En mode strict, le this d'une fonction est toujours la valeur spécifiée, quelle que soit la valeur spécifiée.

var a="1";
function test(){
 console.log(this.a)
}
test.call(null) 在非严格模式下会输出1,严格模式下this就指代的就是null,null没有a属性,就会报错。

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles connexes :

Comment ajouter des fichiers audio mp3 en utilisant vue

Comment télécharger des images en utilisant FileReader dans l'aperçu local JS function

Comment définir l'option sélectionnée par défaut en fonction de la balise select ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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