JavaScript mode strict (utilisation stricte)
JavaScript mode strict (mode strict) qui est exécuté dans des conditions strictes
annuaire
Utilisez "use strict" directive
directive « utilisation stricte » dans ECMAScript5.0 nouveau en
Ce n'est pas une déclaration, mais il est une expression littérale, est ignorée dans les anciennes versions de JavaScript
Supports navigateurs en mode strict:
Internet Explorer 10 +, Chrome 13+ Firefox 4+, Safari 5.1+, Opera 12+
Retour en haut de la table des matières
Déclaration Strict Mode
Mode strict dans la tête par un script ou une fonction d'ajouter « l'utilisation stricte », déclaration d'expression.
"use strict"
num = 3; // 报错
// Uncaught ReferenceError: num is not defined
Retour en haut de la table des matières
使用 "use strict"
- Ne pas permettre l'utilisation de variables non définies (mode normal deviendra variables globales non définies)
- « L'utilisation stricte » écrit à l'intérieur de la fonction, la fonction interne est le mode strict
- Pourquoi utiliser le mode strict:
- Éliminer la syntaxe Javascript déraisonnable, lieu non rigoureux, ce qui réduit certains des comportements bizarres;
- Retirez une partie du code de l'insécurité fonctionnement, pour assurer le fonctionnement en toute sécurité du code;
- Améliorer l'efficacité compilateur, d'augmenter la vitesse de fonctionnement;
- Paver la voie à une future nouvelle version de Javascript.
« Mode Strict » reflète Javascript est un développement plus raisonnable, plus sûr et plus rigoureux, y compris IE 10, y compris les principaux navigateurs, soutiennent déjà, de nombreux grands projets ont commencé à l'embrasser.
Retour en haut de la table des matières
Mode strictement limité
- Non autorisé à déclarer Undefined variable:
num = 3
- L'objet est également nécessaire de définir des variables:
x = {a: 1, b: 2}
- Autorisé à des variables de suppression, des objets et des fonctions:
delete num || delete x
- Non autorisé octal, évasion:
var num = 010; var x = \100
- Les variables ne sont pas autorisés le même nom:
function x(p1, p1) {};
- Nous ne permettons pas l'affectation d'attribut lecture seule:
"use strict" var obj = {}; Object.defineProperty(obj, "x", {value:0, writable:false}); obj.x = 3;
- Il est interdit d'utiliser la méthode de lecture de la propriété d'une mission de lecture:
"use strict" var obj = {get x(){return 0}} obj.x = 3;
- Autorisé à supprimer une propriété ne peut pas être supprimé:
delete Object.prototype;
- Les noms de variables ne peuvent pas utiliser « eval », « arguments » keywords chaîne tels que:
var eval = 1, arguments = 1
- En raison de certaines des raisons de sécurité, appel portée des variables eval () ne peut pas être créé:
eval ("var x = 2");里面的x不能调用
- Ce mot-clé fait référence Prohibit à l'objet global:
普通模式的this的值window在严格模式下为undefined
- ECMAScript 6 propriétés de réglage du mode strictement interdite valeurs primitives. Ne pas utiliser le mode strict, définissez la propriété sera ignorée simplement (no-op), le mode strict, va jeter un TypeError
- primitive Valeur type de base (valeur de base des types de données de base) est ni un procédé d'objets de données non. En JavaScript, il y a sept types de base: chaîne, nombre, bigint, boolean, null, non défini, le symbole (ECMAScript 2016 nouveau)
"use strict"; false.true = ""; //TypeError (14).sailing = "home"; //TypeError "with".you = "far away"; //TypeError
- Avec pas permis
Retour en haut de la table des matières
Mots-clés réservés
Pour la transition vers la nouvelle version du futur Javascript, le mode strict ajouté quelques mots-clés réservés:
- met en oeuvre
- interface
- laisser
- paquet
- privé
- protégé
- Publique
- statique
- rendement
Retour en haut de la table des matières