Maison > interface Web > js tutoriel > Explication de l'exemple de mode strict JS

Explication de l'exemple de mode strict JS

小云云
Libérer: 2018-03-01 09:07:52
original
1356 Les gens l'ont consulté

Cet article organise principalement des points de connaissances pertinents et des exemples de code en mode strict JS. Si vous êtes intéressé, suivez l'éditeur pour apprendre ensemble. J'espère que cela pourra aider tout le monde.

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

Si cette invite est donnée dans la portée globale. , alors l'intégralité du script sera en 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"

.

Strict Une erreur sera signalée en mode, mais normale en mode non strict

2. Supprimer les variables

var a trois situations de déclaration

  • var a trois situations de déclaration

  • var Variables globales déclarées dans

  • 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é

Le second le cas est local. Les variables sont encore pires. Vous ne savez même pas qui est l'objet attaché. Comment supprimer

Le troisième cas de eval() sera discuté 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

  1. Dans les situations suivantes, une erreur sera signalée lors de l'utilisation de l'objet

  2. L'attribution d'une valeur à un attribut en lecture seule entraînera une erreur

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

  4. L'ajout de propriétés à des propriétés non configurables -les objets extensibles signaleront une erreur

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"
}
Copier après la connexion

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 exige que les noms des paramètres de fonction soient uniques
function(n,n){
  // todo
}
Copier après la connexion



En mode non strict, cette déclaration de fonction ne signalera 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 Les valeurs sont indépendantes.


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 du fonction, dans l'instruction if La déclaration d'une fonction entraîne une erreur de syntaxe. **
if(true){
  function(){
   // 严格模式下报错
}
}
Copier après la connexion


5.this


Utilisez apply() de la fonction en mode non strict, appelez (), la valeur nulle ou non définie transmise sera convertie en un 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属性,就会报错。
Copier après la connexion

Recommandations associées :

Une brève introduction à l'ordre d'analyse et à la portée de JS et du mode strict

Analyse en mode strict de la portée de l'ordre d'analyse JS


Explication détaillée de ce problème de pointage en mode strict JavaScript

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal