JavaScript’te “Strict Mode” Kullanımı

Bu yazımızda, JavaScript’te “Strict Mode” kavramının ne olduğunu, nasıl kullanıldığını ve bu modun kodunuzu nasıl daha güvenli ve optimize edilmiş hale getirebileceğini detaylıca inceleyeceğiz.

“Strict Mode” Nedir?

Strict mode” (katı mod), dilin daha kesin bir alt kümesini kullanarak kodun daha güvenli ve optimize bir şekilde yazımasını sağlar.

ES5 (ECMAScript 5) ile tanıtılan bu özellik, JavaScript dosyasında veya fonksiyon içinde “use strict”; ifadesi eklenerek etkinleştirilir. “Strict Mode”, bazı potansiyel hatalara ve yanıltıcı davranışlara sebep olabilecek eski JavaScript özelliklerini devre dışı bırakır. Aynı zamanda, bazı hataların daha açıkça raporlanmasını sağlar.

use strict;” komutu ile etkinleştirdiğimiz bu yapı, yazılan kodların daha katı bir kontrol mekanizması tarafından denetlenmesini sağlar. Bu sayede, normalde yapılabilen birtakım şeylerin önüne geçilir ve bu da daha güvenli bir kod yazımını mecburi kılar.

“Peki, use strict; komutu neleri önler?” Bu soruya adım adım cevap verelim.

  • Hataları önlemek: Normal modda, bir değişkene atanmadan önce tanımlanmazsa (beyan edilmezse), bu değişken otomatik olarak global bir değişken haline gelir. Eğer "strict mode"; aktifse ve herhangi bir değişken var, let, const gibi anahtar kelimelerle tanımlamadan kullannılırsa hataya neden olur.
  • Geçmişe dönük uyumluluk ve gelecekteki sözdizimini engelleme: Katı mod, geçmişe dönük uyumlu olmayan veya gelecekteki sözdizim hatalarını önlemek için bazı kelimelerin kullanımını yasaklar.

Gelecekte dilin bir parçası olabilecek bazı anahtar kelimelerin (örneğin, implements, interface, let, package, private, protected, public, static ve yield) şimdiden kullanılmasını engeller. Örneğin, let ve const ECMAScript 6 ile birlikte tanıtılan anahtar kelimelerdir ve use strict; bu kelimelerin normal değişken adları olarak kullanılmasına izin vermez:

  • this için undefined değeri: Katı mod, bağımsız bir fonksiyonun this‘inin global nesneye (window) referans vermesini önler. Bunun yerine, bağımsız bir fonksiyonun this‘i undefined‘a referans verir:
  • Duplicated parameters: Katı mod, aynı isimde birden fazla parametre belirtmemizi engeller. Bu, normal modda izin verilir bir şey ve genellikle hatalara yol açar:
  • Delete operatörünün yanlış kullanımını engelleme: Katı mod, değişkenlerin, fonksiyonların veya fonksiyon parametrelerinin silinmesini engeller. Normalde, delete operatörünün yanlış kullanılması bir hata oluşturmaz, ancak "strict mode"; bu tür kullanımları hata olarak işler:
  • Octal literal’ların (Sekizlik Sayıların) kullanımını engelleme: JavaScript’in erken versiyonlarında, sekizlik (octal) sayılar 0’la başlar. İstenmeyen hataları önlemek adına, bu tür octal literal’ların kullanımını engellenir ve hata oluşturulur:

Bu özellikler, strict mode’un neden modern JavaScript uygulamalarında kullanıldığını gösterir. Bu nedenle, yeni bir projeye başlarken “strict mode”u aktif etmek genellikle iyi bir uygulama olarak kabul edilir.

Ayrıca tekrar belirtmek isterim ki, "use strict"; ifadesini JavaScript’te global olarak bir dosyanın başında kullanabileceğiniz gibi, sadece belirli bir fonksiyon içinde de kullanabilirsiniz. Fonksiyon içinde kullanıldığında, sadece o fonksiyonun kapsamında “Strict Mode” aktif olur. Örneğin, aşağıdaki gibi bir kod yazabiliriz:

Bu tür bir kullanım, tüm kodunuzda “Strict Mode”u etkinleştirmek istemediğinizde, ancak belirli fonksiyonlarda bu modun avantajlarından yararlanmak istediğinizde faydalıdır. Bu, özellikle eski bir kod tabanını güncellerken ve sadece belirli kısımlarda “Strict Mode”u etkinleştirmek istediğinizde kullanışlı olabilir.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu