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

Tüm programlarınızda sıkı mod kullanabilirsiniz. Tanımlanmamış değişkenleri kullanmanızı engellemek gibi daha temiz kodlar yazmanıza yardımcı olur. "use strict" söz dizimini kullanın, sadece bir metindir, bu yüzden IE 9 anlamaz olsa bile bir hata vermeyecektir.

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);
 
Nesneler de değişkenlerdir.

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.

ES5 ile seçmeli olarak gelen Strict Mode kullanımı ES6 ile birlikte başlangıçta geliyor. Yani ES6 "use strict"; ifadesi yazmaya gerek yoktur.

Mesut çınar 26/11/2019

Teşekkürler güzel anlatım için.

Emrah Burak 23/03/2021

Teşekkürler...

Ali Rıza ÖNAL 13/07/2024

Teşekkür ederim.
Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır. Lütfen Yukarıda ki mesajları okuyun tekrar aynı soruları sormayın.

2513

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
  • Git
  • React
POPÜLER MAKALE
  • 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
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.