JavaScript Use Strict Nedir?
Bu yazıda "use strict" ; (katı mod) olarak adlandırılan en önemli Javascript özelliklerinden birine göz atacağız. "use strict" ; JavaScript kodunun "sıkı modda" yürütülmesi gerektiğini tanımlar. JavaScript "use strict"
kullanım amacı, kodun katı kurallı olarak çalıştırılacağını belirtir yani bazı görmezden geldiği yanlış kullanımlarda hata vereceği anlamına gelir.
Normalde Javascript kodunu normal modda çalıştırırız; bu, aslında yanlış sözdizimi ve güvensiz olan birçok şeye izin verir. Ancak, sıkı mod (use strict) kullandığımızda, Javascript kodu yanlış sözdizimini yoksaymadan yürütülür ve ayrıca kodu daha güvenli hale gelmesinde yardımcı olur.
Tarayıcı desteği
Element | |||||
---|---|---|---|---|---|
"use strict" | 13.0 | 10.0 | 4.0 | 6.0 | 12.1 |
JavaScript "use strict" (Katı Mod) Bildirme
"use strict"
yönergesini kullanmanın iki yolu vardır. Fonksiyon beyanı veya global bildirimi olarak kullanabiliriz.
Kod başına Katı mod "use strict"
ekleyerek beyan edilir; Bu kodun genel kapsamı vardır. Komut dosyasının başlangıcında bildirilirse komut dosyasındaki tüm kodlar sıkı modda yürütülür:
Örnek
"use strict";
a = 15;
b = 9;
Toplam = a + b;
alert(toplam);
//Bu bir hataya neden olur, çünkü değişkenler var ifadesi bildirilmemiş.
Örnek:
"use strict";
fonk();
function fonk() {
y = 3.14; // var ifadesi ile tanımlanmamış.
}
Katı kural tanımı fonksiyon içerisinde yapılırsa sadece fonksiyon içini kapsar.
Örnek:
x = 3.14; // var ifadesi ile tanımlanmadığı halde sorun çıkarmaz.
fonk();
function fonk() {
"use strict";
y = 3.14; // var ile tanımlanmadığı için sorun çıkarır.
}
Katı mod bildirmek için sözdizimi, eski JavaScript sürümleriyle uyumlu olacak şekilde tasarlanmıştır. Katı mod kullanın; sadece yeni derleyiciler için önemlidir.
Neden Katı Mod?
Katı mod, güvenli JavaScript kod yazmayı kolaylaştırır.
Katı kural tanımı daha önceki "Kötü sözdizimi" kullanımının önüne geçer.
Örnek olarak, normal modda JavaScript’te, değişken ismin yanlış yazılması (var ifadesi kullanılmadığında) yeni bir global değişken oluşturur. Katı modda, bu bir hata oluşturarak, yanlışlıkla global bir değişken oluşturmayı izin vermez.
Normal modda JavaScript'te, bir geliştirici, yazılabilir olmayan özelliklere değer atayarak herhangi bir hata geri bildirimi almayacaktır.
Katı modda, yazılabilir olmayan bir özelliğe, yalnızca bir alıcıya, varolan bir özelliğe, varolan bir değişkeni veya varolan bir nesneye yönelik herhangi bir atama, bir hata verir.
Katı modda izin verilmeyen şeyler şunlardır:
Katı modda beyan edilmeyen bir değişken kullanamazsınız.
"use strict";
x = 5; // error (x undefined)
alert(x);
Bir nesneyi, bildirmeksizin kullanmanıza izin verilmez:
"use strict";
X = {p1:12, p2:25};
// bir hataya neden olur ( x tanımlanmamıştır)
Bir değişkenin (veya nesnenin) silinmesine izin verilmez.
"use strict";
var a = 5 + 3;
delete a; //Bu bir hataya neden olur.
Bir fonksiyonun silinmesine izin verilmez.
"use strict";
function x(p1, p2) { };
delete x; //Bu bir hataya neden olur.
Fonksiyonda Değişken isimleri tekrarına izin verilmez:
"use strict";
function x(p1, p1) {}; //Bu bir hataya neden olur.
Sekizli sayısal değerlere izin verilmez.
"use strict";
var x = 030; // error
Kaçış karakterine izin verilmez:
"use strict";
var x = "\010"; // error
Salt okunur özelliklere değer atamalarına izin verilmez:
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});
obj.x = 3.14; // Bu bir hataya neden olur
Bir getter yöntemi kullanılarak okunan bir özniteliğe değer atamak yasaktır.
"use strict";
var obj = {get x() {return 0} };
obj.x = 3.14; //error
Silinemeyen özellikleri silemezsiniz:
"use strict";
delete Object.prototype; // Bu bir hataya neden olur .
Katı modda değişken, özellik veya nesne adları olarak "eval" isimleri kullanamayız.
"use strict";
var eval = 4; // Bu bir hataya neden olur
Katı modda değişken, özellik veya nesne adları olarak "arguments" isimleri kullanamayız.
"use strict";
var arguments = 3.14; //error
With ifadesini kullanamazsınız:
"use strict";
with (Math){a = cos(2)}; //error
Güvenlik nedenleriyle, eval () çağrıldığı kapsamda değişkenler oluşturmasına izin verilmez:
"use strict";
eval ("var x = 2");
alert (x);
Anahtar kelimeler
Gelecekteki JavaScript sürümleri için ayrılmış anahtar kelimeler, katı modda değişken adları olarak kullanılamaz.
- implements
- interface
- let
- package
- private
- protected
- public
- static
- yield
Mesut çınar 26/11/2019
Emrah Burak 23/03/2021
Ali Rıza ÖNAL 13/07/2024
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESİM ORTALAMA
- HTML RESME LİNK VERME
- HTML FORM OLUŞTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESİM EKLEME
- CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
- HTML DİV ve SPAN NEDİR?
- HTML ARKAPLANA MÜZİK EKLEME
- KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME