Katı Mod Kullanımı

JavaScript varsayılan olarak ifadelerimizdeki semantik 'bazı hataları' 'hata' olarak fırlatmaz, bunları tolere eder. ES5 ile 2009'da gelen yeniliklerden biri olan 'katı mod'u kullandığımızda yazdığımız kodlardaki bu semantik hatalar tolere edilmez, kod yürütülmez ve hata olarak fırlatılır. Bu modun gelmesi ile birlikte eski mod 'özensiz mod (sloppy mode) - normal mod (normal mode)' yeni mod ise 'katı mod (strict mode)' olarak ifade edilmiştir.

JavaScript'i katı mod ile kullanmak için "use strict" ; ifadesini kullanırız.

'Normal Mod' ile 'Katı Mod' arasındaki farklardan birini şu şekilde örnekleyebiliriz.

// normal mod
dil = 'Javascript'; // hata vermez
alert(dil);
// katı mod
"use strict" ;
dil = 'Javascript'; // hata fırlatır
alert(dil);

Yukarıdaki ilk kod bloğu çalışır, ikincisi çalışmaz. Katı mod hataları fırlatır çünkü katı modda değişkeni deklare etmeden kullanmak hata fırlatır.

'Değişken' ve 'Deklare Etme' kavramlarını bir sonraki ders işleyeceğiz.

İnternet tarayıcımızda F12 kısayol tuşu ile açılan 'Diğer araçlar -> Geliştirici araçları -> Console (Konsol)' menüsündeki konsol sekmesine kayıt (log) düşer ve bu şekilde orada bir çıktı görürüz. Örnekteki hata çıktısını konsoldan görüntüleyebilirsiniz.

JavaScript geriye dönük uyumlu olarak geliştirildiği için önceki betiklerin çalışması açısından katı mod varsayılan olarak çalışmaz, normal moda göre çalışan motor katı moda biz belirttiğimiz takdirde geçer.

Katı mod için yazdığımız ' "use strict"; ' ifadesini kesinlikle kodlarımızın ilk satırına yazmamız gerekir. Aksi halde geçerli olmaz. Ayrıca katı modun bloklar (kapsamlar) içinde de geçerli olmasını istiyorsanız blokların da ilk satırında yazmalısınız.

let isim;
isim = 'Javascript' ;
"use strict" ; // yanlış kullanım.
alert(isim)

{
    let dil;
    dil = 'Javascript' ;
    "use strict" ; // yanlış kullanım
}

{ Her süslü parantez arası bir blok (kapsam) anlamına gelir. }

Kapsamlar konusuna değişkenlerden sonra değineceğiz.

"use strict" ; // doğru kullanım.
let isim;
isim = 'Javascript' ;
alert(isim)

{
    "use strict" ; // doğru kullanım
    let dil;
    dil = 'Javascript' ;
}

Last updated