"use strict" JavaScript kodlarının "katı modda" çalıştırılmasını söyleyen bir bildirimdir. Kendisi bir komut değildir.
Kullanımı şöyledir;
Tüm fonksiyonlar için geçerli olması isteniyorsa fonksiyonların dışına yazın.
"use strict";
function bir() {
}
function iki() {
}
Tek bir fonksiyon için geçerli olması isteniyorsa fonksiyonun başına yazın.
function bir() {
"use strict";
...
}
Bunu kullandığınız kodlarda veya fonksiyonlarda aşağıdakileri yaptığınızda bazılarında hata ile karşılaşırsınız, bazıları ise belirli kurallar içinde kullanmanız gerekir.
1. Önceden tanımlanmamış global değişkenlere izin vermez.
function deneme() {
sayi = 10; // Hata! Sayı fonksiyon içinde veya dışında global olarak tanımlanmamış.
}
2. Normalde hata göstermeyen yanlış atamalarda hata alırsınız.
3. Silinemeyen nesne özelliklerini silmeye çalışmak hata verir.
4. Bir nesne tanımlamasında kullanılan tüm özellik adlarının tekil olması gerekir.
var obj = {x:"1", x:"2"};
5. Bir fonksiyonun parametre isimlerinin tümü tekil olmalıdır.
6. JavaScript with ifadesinin kullanımını engeller.
7. Octal (8 tabanlı sayı) atamalarını engeller.
8. Eval fonksiyonu ile yeni değişken oluşturan ifadeleri kullanamazsınız.
9. Delete ifadesi ile bir değişkeni silemezsiniz ancak değişkenin bir özelliğini silebilirsiniz.
var a = {x: 0};
delete a.x; // Çalışır
delete a; // Çalışmaz
10. Fonksiyonların "arguments" özelliğinin kullanımında bazı kısıtlamalar vardır.
Tabii ki bunlardan sonra kullanıp kullanmamak sizin kararınız. Ancak JavaScript'in tip katılığı da dahil olmak üzere normalde katı bir dil olmaması göreceli olmakla birlikte güzel bir özellik sayılabilir. Ancak bazı hataları yapma ihtimalini de arttırır.
Sonuç olarak "use strict" kullanımı tamamen kişiye bağlıdır. Derseniz ki sen hiç kulandın mı? Hayır hiç kullanmadım ve şimdiye kadar da bir sorun oluşturmadı. Zaten oluşturduysa da hatalar gösterilmediğinden benim haberim yok :)
Kaynaklar: