Javascript İle Temiz Kod Yazmak

Bu yazımızda Javascript ile daha düzenli ve daha temiz nasıl kod yazabiliriz ona değinmeye çalışacağım.

- Javascript alanında uzman geliştiriclier global değişkenler, new anahtar kelimesi, == operatörü ve eval() metodunu kullanmamamız konusunda ısrarla uyarılar yapıyorlar. Şimdi bunların daha iyi ve daha düzenli bir şekilde nasıl yazıldığına göz atalım.

Global Değişken Kullanmamaya Çalışın

Sayfa içerisinde global değişkenleri en aza indirmek bizim faydamıza olacaktır. Aklımıza hemen "Neden Global Değişken Kullanmamalıyım ?" sorusu geliyor.

Global değişkenler o sayfada kullanılan tüm javascript dosyalarını etkiler. Mesela 500 kişinin çalıştığı bi projede çalıştığınızı düşünün. Sizin ya da bir başkasının kazayla ya da bilerek tanımladığı global değişken tüm projenin aksamasına neden olabilir. Şöyle düşünün ekip arkadaşınız global değişkene x adını verdi ve sizde metot içinde bir x değişkeni tanımladınız. Program burada hata verir.

Daima Yerel Değişkenler Kullanın

Bir metot veya koşullu ifadede tanımlanan tüm değişkenler yerel değişken olarak adlandırılır.

Yerel değişkenler var veya let anahtar sözcüğü ile tanımlanmalıdır. Aksi takdirde global değişken olurlar.

Katı (Strict Mode) Mod tanımlanmamış değişkenlerin kullanımına izin vermez.

Değişken Bildirimlerini Üstte Yapmak

Tüm değişken tanımların her komut dosyasının ya da metodun en üstünde yapmak iyi bir kodlama yöntemidir.

Bunun nedenlerini maddeler halinde sıralayacak olursak:

- Daha temiz ve hoş görünen bir kod yapımız olur.

- Değişkenlerin tek bir yerde olduğunu biliriz. Nerede tanımladık diye aramamıza gerek kalmaz.

- İstenmeyen ve kullanılmayan değişkenlerden kurtulmamız kolaylaşır.

- Bir değişkenin aynı isimle tekrar tanımlanmasının önüne geçmiş oluruz.

<script>
//Değişkenleri en üstte tanımlamalıyız
var x,y,z,total;

//Tanımladığımız değişkenleri kullanabiliriz.
x = 5;
y = 6;
z = 7;
</script>

Bu aynı zamanda döngü değerleri için de geçerlidir.

<script>
var i ;

for(i=0;i<5;i++){
  alert(i)
}
</script>

Varsayılan olarak Javascript tüm bildirimleri üste kaldırır (Hoisting)

Değişkenleri Başlatın

Değişkenleri tanımladığınızda bunlara başlangıç değeri vermek temiz ve düzenli kod yazmanın bir parçasıdır.

Bunu yapmak bize şunları kazandırır;

- Daha temiz kod yazmış oluruz.

- Değişkenleri tek bir anahtar kelimeyle (var veya let) tanımlamış oluruz.

- Tanımlanmamış değişkenlerden dolayı oluşacak hataların önüne geçmiş oluruz.

<script>
// Tek bir var ile birden fazla değişken tanımlayabiliriz.
var i = 5, y = 6, z = {}
</script>

Değişkenlere başlangıç değeri vermek, ne amaçla kullanılacağı veya kullanıldığı hakkında fikir sahibi olmamızı sağlar.

Değişkenleri Number, Object, String veya Boolean Şeklinde Tanımlamayın

Number, string , boolean ve object veri türlerini nesne olarak kullanmamız kesinlikle önerilmiyor. Bu tipleri ilkel veri tipi olarak tanımlamamız daha doğru olacaktır.

Çünkü bu tipleri nesne olarak tanımlamak , yürütme hızını yavaşlatır ve programda hata çıkmasına neden olur.

Hatalı Kullanım:

<script>
var x = "Zafer";             
var y = new String("Zafer");
(x === y) // False olur çünkü nesneleri karşılaştıramazsınız.
</script>

Bu da hatalı Kullanım:

<script>
var x = new String("Zafer");             
var y = new String("Zafer");
(x == y) // Bu da yanlıştır. Nesneler karşılaştırılamaz.
</script>

new Object() Kullanmaktan Kaçının

Bunun yerine ilkel veri tiplerini kullanmamız Javascript açısından daha doğrudur.

- new Object() yerine {}

- new String yerine ""

- new Number() yerine "0" -> Burada sayısal değerlerden istediğiniz olabilir.

- new Boolean() yerine True veya False

- new Array() yerine []

- new RegExp yerine /()/

- new Funtion() yerine function(){}

kulanmamız tasiye ediliyor.

<script>
var x1 = {};           //  yeni nesne
var x2 = "";           // ilkel metin
var x3 = 0;            // ilkel sayı
var x4 = false;        // ilkel mantıksal işlem
var x5 = [];           //  yeni dizi
var x6 = /()/;         // yeni düzenli ifade stringi
var x7 = function(){}; //  yeni fonksiyon
</script>

Otomatik Tür Dönüşümlerine Dikkat Edin

Javascript değişkenlerin hangi tür olduğunu otomatik belirliyor biliyorsunuz. Bazen bu başımıza büyük sorunlar açabilir. Jaascript Losely type yani gevşek bir yazılım dilidir (Hakaret etmedim sakin olun :) ) . Bir değişken farklı veri türleri içerebilir. Ve Javascript bir değişkenin veri türünü değiştirebilir.

<script>
var x = "Merhaba";     // typeof x ile değeri string  string
x = 5;               // değerini değiştirdiğimiz için türü de değişmiş oldu
</script>

Bir metni bir metinden çıkarmak hata oluşturmaz ancak geriye NaN değeri (Not a number) döner.

<script>
"Merhaba" - "kodlamaklazim"    // returns NaN
</script>

=== Karşılaştırma Operatörünü Kullanın

== Operatörü her karşılaştırmadan önce türler aynı ise true döndürür.

=== Operatörü ise değerin ve tipin aynı olması durumunda true değerini döndürür.

<script>
1 == true;      // true 
0 === "";       // false
</script>

Default Prametreler Kullanın

Eğer bir fonksiyonu çağırdığımız zaman biz parametre göndermezsek ve fonksiyonda parametre varsa undefined değerini alır ve fonksiyon parametre olmadığı için çalışmayı durdurur. Bunun önüne geçmek için parametrelere default değer verebiliriz.

<script>
function deneme(x, y) { 
  if (y === undefined) {
    y = 0;
  }
}

// ES2015 ile şu şekilde de yapabilirizi
function (a=1, b=1) /*function code*/ }

</script>

Switch-Case Yapılarınızda Mutlaka Default Kısmını Kullanın

Gerek olmadığını düşünseniz bile Switch Case ifadelerine default değer ekleyin.

<script>
var a =1; 
switch(a){
case  1:
alert(1)
break;
default:
alert("Deger Yok";)
}
</script>

eval() Metodunu Kullanmaktan Kaçının

Eval Metodu metni kod olarak çalıştırmanıza izin verir. Bazı durumlarda bu güvenlik sorunu teşkil edebilir.


YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

0 YORUM

Bu konuya henüz yorum yapılmamış

Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.