El modo estricto hace que tu programa o función siga un contexto de funcionamiento estricto. Ahora aquí está mi último post relacionado con el use strict
en JavaScript. Este post es muy beneficioso para los principiantes y refrescantes.
¿Qué es «use strict»?
=> El modo estricto hace que tu programa o función siga un contexto de funcionamiento estricto.
¿Qué significa esto en realidad?
=> Ahora, el compilador lanza algunos errores silenciosos que antes no eran lanzados o ignorados. Además, no permite hacer ciertas cosas. Vamos a ver qué cosas.
¿Qué hace exactamente el modo estricto?
La variable no se añadirá al objeto global/ventana si no está declarada.
designer = "Creativity is everything"var developer = "Docs are life"console.log(designer)// Creativity is everything
Por defecto, si se define una variable no declarada, se añade al objeto global/ventana. Esto puede crear un error e incluso puede ser difícil de encontrar.
Para evitar estos escenarios, podemos declarar use strict. El modo estricto no permite el uso de variables que no han sido declaradas.
var designer = "Creativity is everything"// YOU PROBABLY MEANT THIS.
En modo estricto
'use strict'designer = "Creativity is everything"var developer = "Docs are life"console.log(designer)// ReferenceError: designer is not defined
Función con parámetros de nombre duplicado en modo no estricto
En JavaScript normal, podemos repetir los nombres de los argumentos en las funciones. La aparición tardía de estos argumentos anulará los anteriores.
function logItems( y, y ) { console.log(y) console.log(y)}logItems(44,22)// 22// 22
Función con parámetros de nombre duplicado en modo estricto
La función no se establecerá si tiene parámetros de nombres iguales.
"use strict"function logItems( y, y ) { console.log(y) console.log(y)}// SyntaxError: Duplicate// parameter name not// allowed in this context
Impide que uno borre la función, las variables y los parámetros de la función.
1
"use strict"const x= 4;delete x// SyntaxError: Delete of an// unqualified identifier in// strict mode.
"use strict"function LOG() { console.log("Log")}delete LOG// SyntaxError: Delete// of an unqualified// identifier in strict mode.
El operador de borrado en sí mismo se utiliza para eliminar una propiedad de un objeto no variables, funciones, etc.
Los errores silenciosos se lanzan en modo estricto
Vamos a ver dos ejemplos…
(Primero)
var user = { name: "Rahul", age: "16", }console.log(user)// { name: 'Rahul', age: '16' }Object.defineProperty(user, "gender", { value: "Male", enumerable: true, writable: false, configurable: false})delete user.gender// No error in consoleconsole.log(user)//{ name: 'Rahul', age: '16', gender: 'Male' }
(SEGUNDO)
"user strict"var user = { name: "Rahul", age: "16", }console.log(user)// //{ name: 'Rahul', age: '16' }Object.defineProperty(user, "gender", { value: "Male", enumerable: true, writable: false, configurable: false})delete user.gender// No error in consoledelete user.gender// TypeError: Cannot delete property 'gender' of #Object
¿Cómo comprobar si estás en modo estricto?
"use strict"var isStrict = (function() { return !this; })(); console.log(isStrict)// true
var isStrict = (function() { return !this; })(); console.log(isStrict)// false
Necesito ayuda
Necesito ayuda para recaudar fondos para comprar un teclado mecánico. Esta pandemia ha afectado mucho a mi familia por lo que no puedo pedírselo a mi PAPÁ. Por favor ayúdenme.
Gracias por leer | ⚡ Feliz aprendizaje y codificación