Tryb ścisły sprawia, że twój program lub funkcja podąża za ścisłym kontekstem działania. Teraz tutaj jest mój najnowszy post związany z use strict
w JavaScript. Ten post jest bardzo korzystny dla początkujących i odświeżających.
Co to jest „use strict” ?
=> Tryb ścisły sprawia, że twój program lub funkcja podąża za ścisłym kontekstem operacyjnym.
Więc co to właściwie znaczy?
=> Teraz kompilator rzuca kilka cichych błędów, które wcześniej nie były rzucane lub ignorowane. Również nie pozwala ci robić pewnych rzeczy. Zobaczmy, jakie rzeczy.
Co dokładnie robi tryb ścisły ?
Zmienna nie zostanie dodana do obiektu globalnego/okiennego, jeśli nie zostanie zadeklarowana.
designer = "Creativity is everything"var developer = "Docs are life"console.log(designer)// Creativity is everything
Domyślnie, jeśli niezadeklarowana zmienna jest zdefiniowana, zostaje dodana do obiektu globalnego/okna. Może to spowodować błąd, a nawet może być trudne do znalezienia.
Aby uniknąć takich scenariuszy, możemy zadeklarować use strict. Tryb ścisły nie pozwala na użycie zmiennych, które nie zostały zadeklarowane.
var designer = "Creativity is everything"// YOU PROBABLY MEANT THIS.
Tryb ścisły
'use strict'designer = "Creativity is everything"var developer = "Docs are life"console.log(designer)// ReferenceError: designer is not defined
Funkcja z duplikatami nazwanych parametrów w trybie nie ścisłym
W normalnym JavaScript, możemy powtarzać nazwy argumentów w funkcjach. Późniejsze wystąpienie tego argumentu spowoduje nadpisanie poprzednich.
function logItems( y, y ) { console.log(y) console.log(y)}logItems(44,22)// 22// 22
Funkcja z duplikatami nazwanych parametrów w trybie ścisłym
Funkcja nie zostanie utworzona, jeśli posiada parametry o tych samych nazwach.
"use strict"function logItems( y, y ) { console.log(y) console.log(y)}// SyntaxError: Duplicate// parameter name not// allowed in this context
Usuwanie operatora w trybie ścisłym
Zapobiega usuwaniu funkcji, zmiennych i parametrów funkcji.
1
"use strict"const x= 4;delete x// SyntaxError: Delete of an// unqualified identifier in// strict mode.
2
"use strict"function LOG() { console.log("Log")}delete LOG// SyntaxError: Delete// of an unqualified// identifier in strict mode.
Operator delete sam w sobie służy do usuwania właściwości na obiekcie nie zmiennych, funkcji itp.
Błędy ciche są rzucane w trybie ścisłym
Zobaczymy dwa przykłady….
(Pierwszy)
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' }
(DRUGI)
"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
Jak sprawdzić czy jesteś w trybie ścisłym ?
"use strict"var isStrict = (function() { return !this; })(); console.log(isStrict)// true
var isStrict = (function() { return !this; })(); console.log(isStrict)// false
Potrzebna pomoc
Potrzebuje pomocy w zebraniu funduszy na zakup klawiatury mechanicznej. Ta pandemia bardzo dotknęła moją rodzinę, więc nie mogę prosić o nią mojego OJCA. Proszę, pomóż mi.
Thanks For Reading | ⚡ Happy Learning and Coding