JavaScript'te `strict mode`
Bu makale, JavaScript'teki strict mode
u açıklar.
YouTube Video
JavaScript'te strict mode
JavaScript'te, strict mode
(katı mod), kodu daha güvenli hale getirmek ve hataları önlemek için ECMAScript 5 (ES5) ile tanıtılan bir özelliktir. Katı mod kullanılarak, belirli esnek sözdizimleri ve potansiyel olarak riskli özellikler devre dışı bırakılır ve daha sıkı hata kontrolleri uygulanır. Bu, geliştiricilerin beklenmeyen davranışlardan kaçınmalarını ve daha sağlam ve yüksek performanslı kod yazmalarını sağlar.
strict mode
'u etkinleştirme
strict mode
özelliğini etkinleştirmek için kodunuzun başına aşağıdaki yönergeyi ekleyin.
1"use strict";
Bu deklarasyon, tüm betiğe veya fonksiyon bazında uygulanabilir. Örneğin, tüm betiğe uygulanırsa, bunu şu şekilde yazabilirsiniz:.
1"use strict";
2
3function example() {
4 // Strict mode is applied
5}
Eğer fonksiyon bazında uygulanırsa, bunu şu şekilde yazabilirsiniz:.
1function example() {
2 "use strict";
3 // Strict mode is applied only within this function
4}
strict mode
her bir kapsam için geçerlidir, bu nedenle bir fonksiyon içinde de etkinleştirilebilir. Ayrıca, modüllerde strict mode
varsayılan olarak etkinleştirildiği için, bunu modül içinde ayrıca belirtmenize gerek yoktur.
strict mode
'un temel özellikleri ve farklılıkları
strict mode
kullanımı, JavaScript'in bazı varsayılan davranışlarını değiştirir. İşte başlıca örnekler.
Örtük küresel değişkenlerin yasaklanması
Normal JavaScript'te bir değişken bildiriminin atlanması, bu değişkenin otomatik olarak global bir değişken olarak tanımlanmasına neden olur, ancak strict mode
'da bu bir hatayla sonuçlanır.
1"use strict";
2
3x = 10; // Error: x is not defined
Değişkenler her zaman var
, let
veya const
kullanılarak tanımlanmalıdır.
Rezerve edilmiş kelimelerin kullanımına kısıtlama
strict mode
'da gelecekteki potansiyel JavaScript anahtar kelimeleri (ör. implements
, interface
, package
, vb.) değişken veya fonksiyon adı olarak kullanılamaz.
1"use strict";
2
3var package = "strict mode"; // Error: Unexpected strict mode reserved word
this
davranışındaki değişiklikler
Normal modda, bir fonksiyon içindeki this
global nesneye referans eder (ör. tarayıcılarda window
), ancak strict mode
'da this
undefined
olur.
1"use strict";
2
3function example() {
4 console.log(this); // undefined
5}
6
7example();
Bu, this
'in yanlış kullanılmasından kaynaklanan hataların önlenmesine yardımcı olur.
Silinemez özelliklerin silinmesinin yasaklanması
Normal modda, silinemeyen nesne özelliklerini silme girişimi hatasız bir şekilde göz ardı edilir, ancak strict mode
'da bu bir hataya neden olur.
1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name; // Error: Cannot delete property 'name'
Yinelenen parametre adlarının yasaklanması
Normal modda, aynı isme sahip parametrelerin birden fazla kez tanımlanmasına izin verilir, ancak strict mode
'da bu bir hataya yol açar.
1"use strict";
2
3function example(a, a) {
4 // Error: Duplicate parameter name not allowed in this context
5}
with
ifadesinin yasaklanması
with
ifadesi kod okunabilirliğini azaltabilir ve strict mode
'da yasaklanmıştır.
1"use strict";
2
3with (Math) {
4 // Error: Strict mode code may not include a with statement
5}
strict mode
'un avantajları
strict mode
, birkaç şekilde kod güvenliğini ve verimliliğini artırır.
Geliştirilmiş hata tespiti
strict mode
'da, normal modda gözden kaçan hatalar algılanır ve bu, geliştiricilerin potansiyel hataları erken fark etmesini sağlar. Örneğin, istenmeyen küresel değişkenlerin oluşturulmasını ve anahtar kelimelerin yanlış kullanımını önler.
Geliştirilmiş performans
strict mode
'da JavaScript motorları kodu daha verimli bir şekilde optimize edebilir. Sonuç olarak, çalışma hızı artabilir.
Geliştirilmiş kod güvenliği
Sıkı modda this
kullanımına daha sıkı davranılır, gereksiz küresel nesnelere erişim önlenir ve böylece kod güvenliği artırılır. Ayrıca, anahtar kelime olarak ayrılmış sözcüklerin kullanımındaki kısıtlama, gelecekteki çatışmaları engeller.
Uyumluluk ve dikkate alınması gerekenler
strict mode
, ECMAScript 5'te tanıtılmıştır ve önceki sürümlerde yayınlanan tarayıcılarda desteklenmez. Ancak, desteklenmeyen tarayıcılarda strict mode
'un etkinleştirilmesi yalnızca yok sayılır ve betiği bozmaz. Bu nedenle, genellikle güvenli bir şekilde kullanılabilir.
Büyük bir mevcut projeye strict mode
eklerken, beklenmeyen hatalardan kaçınmak için kapsamlı test yapmak çok önemlidir.
Sonuç
JavaScript'in strict mode
'u, kod kalitesini artırmak için son derece faydalı bir özelliktir. Özellikle, büyük ölçekli projelerde veya ekip geliştirmelerinde, beklenmeyen hataları ve hataları önlemek, ayrıca kod okunabilirliğini ve sürdürülebilirliğini artırmak için sıkı modun aktif olarak kullanılması önerilir.
strict mode
'u anlamak ve doğru bir şekilde uygulamak, JavaScript tuzaklarından kaçınmanıza yardımcı olur ve daha güvenli, daha verimli bir geliştirme sağlar.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.