Table des matières
1 Comprendre le mode strict
2. Activez le mode strict
3. Restrictions du mode strict
1. Les variables globales ne peuvent pas être créées accidentellement
3. Essayer de supprimer des attributs non supprimables en mode strict
(1). Utilisez le mot-clé delete pour les variables
(2). Utilisez le mot-clé delete pour les tableaux et les attributs de méthode
4. Le mode strict ne permet pas aux paramètres de fonction d'avoir le même nom
5. La syntaxe octale de 0 n'est pas autorisée
6. En mode strict, l'utilisation de with
7. couche supérieure
8 En mode strict, cette liaison ne sera pas convertie en objet par défaut
Maison interface Web js tutoriel Apprentissage avancé de la syntaxe JavaScript en mode strict

Apprentissage avancé de la syntaxe JavaScript en mode strict

May 24, 2022 pm 01:45 PM
javascript

Cet article vous apporte des connaissances pertinentes sur javascript, qui présente principalement des problèmes liés au mode strict, facile à comprendre. Il s'agit d'un mode JavaScript restrictif, qui rend le code implicite. Sortons du "mode paresseux". jetez un œil ci-dessous. J’espère que cela sera utile à tout le monde.

Apprentissage avancé de la syntaxe JavaScript en mode strict

[Recommandations associées : tutoriel vidéo javascript, front-end web]

1 Comprendre le mode strict

  • Dans la norme ECMAScript5, JavaScript a proposé le concept de mode strict :

    • . mode strict Il est facile de comprendre qu'il s'agit d'un mode JavaScript restrictif, qui fait implicitement sortir le code du "mode paresseux".

    • Les navigateurs prenant en charge le mode strict détecteront et exécuteront le code de manière plus stricte lors de la détection du mode strict dans le code.

  • Le mode strict impose certaines restrictions sur la sémantique JavaScript normale :

    • Le mode strict élimine certaines des erreurs silencieuses d'origine en générant des erreurs.

    • Le mode strict permet au moteur JS d'effectuer davantage d'optimisations lors de l'exécution du code (pas besoin de gérer une syntaxe particulière).

    • Le mode strict désactive certaines syntaxes qui pourraient être définies dans les futures versions d'ECMAScript.

2. Activez le mode strict

Alors, comment activer le mode strict ? Le mode strict prend en charge la migration granulaire :

  • peut prendre en charge l'activation du mode strict dans les fichiers js ;
  • prend également en charge l'activation du mode strict pour une certaine fonction

3. Restrictions du mode strict

JavaScript est conçu pour les développeurs novices. plus facile à démarrer, donc parfois si vous achetez une syntaxe incorrecte, ne pensez pas qu'elle puisse être analysée normalement
Cependant, cette méthode peut entraîner des risques de sécurité
En mode strict, ce type de transaction sera considéré comme une erreur ; qu'il peut être rapidement découvert et corrigé ;
Résumé quelques limitations courantes :

1. Les variables globales ne peuvent pas être créées accidentellement

Il existe deux manières de créer accidentellement des variables globales :

  • Globalement, n'utilisez pas la clé directement. déclarer des variables globales
  • N'utilisez pas de mots-clés pour déclarer des variables à l'intérieur de la fonction. Les fonctions sont promues en variables globales par défaut
    L'exemple de code est le suivant :
'use strict'
// 禁止意外创建全局变量
message = '意外创建全局变量'
console.log(message) // 报错信息为:Uncaught ReferenceError: message is not defined

function foo () {
    age = 20
    console.log(age)
}
foo() // ReferenceError: age is not defined
Copier après la connexion

2. signaler une exception d'erreur

L'exemple de code est le suivant :

//开启严格模式,将问题直接转化为报错
'use strict'
const v = 100;//(定义常量)
v = 1.14;//重新赋值(为变量)

console.log(v); // Uncaught TypeError: Assignment to constant variable.
Copier après la connexion

3. Essayer de supprimer des attributs non supprimables en mode strict

En mode strict, vous ne pouvez pas utiliser l'opérateur de désélection sur les variables.

(1). Utilisez le mot-clé delete pour les variables

  // 开启严格模式
'use strict'

var v = 100;
delete v;//非严格模式下:此处为静默失败,既没有报错也没有删除变量v
console.log(v);//100
//开启严格模式后,改为报错Delete of an unqualified identifier in strict mode.
Copier après la connexion

(2). Utilisez le mot-clé delete pour les tableaux et les attributs de méthode

Utilisez le mot-clé delete pour les tableaux et les attributs de méthode en mode strict, l'effet reste inchangé.

// 开启严格模式
'use strict'

// 1、严格模式下删除数组内容
var arr = [1,2,3,4]
delete arr[0];
console.log(arr);//[ <1 empty item>, 2, 3, 4 ]

// 2、严格模式下delete函数的属性
var obj  =  {
    name : '猪猪侠 '
}
delete obj.name;
console.log(obj.name)//undefined
Copier après la connexion

4. Le mode strict ne permet pas aux paramètres de fonction d'avoir le même nom

L'exemple de code est le suivant :

'use strict'
// 不允许函数有相同的参数名称
function foo2 (x, y, x) {
    console.log(x, y, x)
}
foo2(10, 20, 30) // SyntaxError: Duplicate parameter name not allowed in this context
Copier après la connexion

5. La syntaxe octale de 0 n'est pas autorisée

L'exemple de code est le suivant. suit :

// 不允许使用原先的八进制格式
var num1 = 0123
var num2 = 0o123 // 可以写成这种格式 八进制
var num3 = 0x123 // 可以写成这种格式 十六进制
var num4 = 0b100 // 可以写成这种格式 二进制

console.log(num1) // SyntaxError: Octal literals are not allowed in strict mode.
console.log(num2, num3, num4) // 83 291 4
Copier après la connexion

6. En mode strict, l'utilisation de with

n'est pas autorisée. L'exemple de code est le suivant :

'use strict'
var message = 'Hello World';

var obj = { name: 'jam', age: 20 }
// with语句可以形成自己的作用域,在with语句中打印age时,会输出obj对象中的age属性,但在with语句中打印不存在的属性message时,会向外层的作用域一层一层去查找
function foo () {
    with (obj) {
        console.log(age) 
        console.log(message) 
    }
    console.log(message)
}
foo() // SyntaxError: Strict mode code may not include a with statement
Copier après la connexion

7. couche supérieure

L'exemple de code est le suivant :

var jsString = "var message = 'hello world';console.log(message)"
eval(jsString) // 输出  hello world
console.log(message) // 报错信息为:ReferenceError: message is not defined
Copier après la connexion

开启严格模式 eval函数不会向上引用变量 所以全局作用域就没有message这个变量所以会报错

8 En mode strict, cette liaison ne sera pas convertie en objet par défaut

L'exemple de code est le suivant :

'use strict'
// 在严格模式下,自执行函数(默认绑定)会指向undefined  ,非严格模式下会指向window
function foo () {
    console.log(this)
}
foo() // undefined
Copier après la connexion

[Recommandations associées : tutoriel vidéo javascript, front-end web]

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace Dec 17, 2023 am 08:41 AM

JavaScript est un langage de programmation largement utilisé dans le développement Web, tandis que WebSocket est un protocole réseau utilisé pour la communication en temps réel. En combinant les puissantes fonctions des deux, nous pouvons créer un système efficace de traitement d’images en temps réel. Cet article présentera comment implémenter ce système à l'aide de JavaScript et WebSocket, et fournira des exemples de code spécifiques. Tout d’abord, nous devons clarifier les exigences et les objectifs du système de traitement d’images en temps réel. Supposons que nous disposions d'un appareil photo capable de collecter des données d'image en temps réel.

See all articles