JavaScript’in yazılım kurallarının (Syntax) çoğu JAVA programlamaya benzer ancak JavaScript aynı zamanda Perl ve Python’dan da etkilenir. JavaScript karakter kümesi olarak Unicode Unicode (Evrensel Kod) Unicode Consortium organizasyonu tarafından geliştirilen ve her karaktere bir sayı değeri karşılığı atayan bir endüstri standardıdır. karakter kümesi kullanılır. Fakat, bu her Unicode kodlamasının görüntüleneceği anlamına gelmez. Karakterin “Glyph” (Kılıf) ad verilen görüntüsünün de belge çözümleyicinin içinde tanımlanmış olması gerekmektedir. Doğal olarak bu olasılık az kullanılan arkaik diller için geçerlidir. Batı dillerine ait tüm karakterler sorunsuzca görüntülenecektir. Diğer dillerinde karakter kodları çözümleyicilere eklenmeye devam etmektedir.

JavaScript programlama dilinde Unicode karakterlerinin desteklenmesi, JavaScript programlarında, değişken isimler, fonksiyon isimleri gibi kullanıcı tanımlı her değişken ve nesnenin Türkçe isimlerle tanıtılıp çağırılabileceği anlamına gelir. Bu yerel olarak programın anlaşılabilirliliğini arttırır, fakat uluslararası ortamlarda, yerel diller ile yazılmış programların anlaşılabilililiği oldukça azalır.

JavaScript dilinde alfanumeric değişkenler ve düzenli ifadeler (RegExp) gereği olmadıkça, her türlü boşluk, satır aralığı ve tab karakterlerini göz ardı eder. bu nedenle, kendimiz için en anlamlı kod düzenlemelerini yaparak, program yazım konforuna sahip oluruz. JavaScript programlama dili, Algol/Pascal/ADA serbest yazım formunu aynen destekler. Yazım yöntemi çok esnek olmasına karşın, alışkanlıktan kaynaklanan belirli kalıplar içinde kalmanın oldukça yararı vardır. Çünkü yazılmış olan kodun veya kod bloğunun ileride bakımı için bize büyük kolaylıklar sağlayacaktır.

JavaScript programlama dilinde, bazı program dillerinde olduğu gibi, blok içinde alınmış kodlar, yeni bir kapsam alanı yaratmazlar. JavaScript yorumlayıcısı, bildirim bekleyen if gibi program öğelerine tek bildirim yerine birden çok bildirim belirtilmesi için çalıştırılacak bildirimlerin bir bildirim bloğu { } içine alınmasını öngörmüştür. Bildirim bloğunda kullanılacak program adımları bellidir ve bunlarda kullanılacak bildirim bloğu { }’nun amacı, içeriğine yeni bir kapsam açmak değil, içeriği olan bildirimlerin sıra ile çalıştırılmasını sağlamaktır.

JavaScript’te bütün değikenler harf, alt çizgi veya ( _  veya altbağlaç ) veya dolar ( $ ) işareti ile başlar. Rakamlar ve diğer karakterler bu üç karakterden sonra kullanılır. Değişkenler $ işareti ile başlatılabilmesine karşın güncel kullanımda bu olanak sadece makine tarafından oluşturulan otomatik JavaScript kodlarına bırakılmaktadır. Yani insanlar tarafından oluşturulan kodlarda, önleyici hiç bir kural olmamasına karşın, değişken isimlerinde $ karakteri pek kullanılmamaktadır.

JavaScript büyük küçük harf duyarlıdır (Case Sensitive). Yani aynı isimde hem büyük harfle hemde küçük harfle değişken oluşturursanız JavaScript bu iki değişkeni ayrı ayrı yorumlar. Örnek icerik, Icerik veya ICERIK değişkenler birbirinden farklıdır ve farklı şekilde yorumlanacaktır. JavaScript’te aşağıda belirtilen rezerv edilmiş anahtar kelimelerden oluşan değişken oluşturamazsınız. Son olarak tek tırnak ile çift tırnak arasında herhangi bir fark yoktur. Dikkat edilmesi gereken eğer tek tırnak ile başlarsanız tek tırnak, çift tırnak ile başlarsanız çift tırnak içeriğinizi bitirmenizdir.

JavaScript’te Yorum Satırı Ekleme

Javascript’te yorum satırı ekme tıpkı C++ ve diğer dillerde olduğu gibidir. Programcıların yazmış oldukları kodları açıklamak için kullandığı ve kodun içinde yazdıkları kimi zaman çok büyük olan metinlerdir. Gerek fonksiyonlarda gerekse değişkenlerde yorum veya açıklama satırı kullanılarak fonksiyonun veya değişkenin ne tür iş yaptığını veya ne tür bir çıktı verdiğini belirtilir. Tek satır açıklama yazmak için satırın başına // metin yazmanı yeterliyken birden fazla satırlı yorum veya açıklama yazmak için metninizi   /*  metin   */  şeklinde yazmalısınız. Yorumlar ve açıklama satırları yorumlayıcılar (interpreter) tarafından dikkate alınmaz. Dolayısıyla sisteminize de herhangi bir işlem yükü getirmeyecektir. Programcılar yazmış oldukları fonksiyonları ve değişkenleri daha sonra hatırlamak veya başkalarının da rahat bir şekilde okuyabilmeleri için yorum ve açıklama satırlarına önem verirler.

// tekli yorum satırı

/*
  Eğer birden fazla satır yorum yazarsanız
  çok yorum satırı kullanabilirsiniz. 
*/

Rezerv Edilmiş Kelimeler

abstract arguments await* boolean
break byte case catch
char class* const continue
debugger default delete do
double else enum* eval
export* extends* false final
finally float for function
goto if implements import*
in instanceof int interface
let* long native new
null package private protected
public return short static
super* switch synchronized this
throw throws transient true
try typeof var void
volatile while with yield

* işaretliler ECMAScript 6 ile yeni eklenenlerdir. Daha detaylı bilgi için reserved words.

Programcının yazmış olduğu yorum ve açıklama satırları
ile JavaScript dosyalarını kolayca ve otomatik olarak dokümante eden scriptler vardır.
Detaylı bilgi için http://usejsdoc.org

JavaScript Tanımlayıcıları (Identifiers)

Tanımlayıcılar, JavaScript değişkenlerini, fonksiyonlarını, nesnelerini ve tüm diğer ögeleri adlandırmak üzere kullanılabilen alfasayısal karakterler topluluklarıdır. Görevleri, belirli bellek bloklarının, program boyunca belirli bir tanımla çağrılmasını sağlamaktır. Yani, tanımlayıcılar birer isimdir.

Değişkenler

Variables, değişkenler, herhangi değeri saklayabileceğiniz ve ismini kendimizin belirlediği bir nevi veri depolarıdır. Bir değişkeni tanımlamaya var, let anahtar kelimesi kullanarak başlanılır, ardından da değişkenin ismi yazılır.

var myVariable;

JavaScript’teki bütün ifadeler noktalı virgül ile bitmelidir. Eğer noktalı virgül koymadığınız taktirde beklenmeyen hatalar veya sonuçlar ile karşılaşılabilir.
Aslında bir değişken tanımlarken satırın sonuna noktalı virgül koymak şart değildir. JS yorumlayıcılar satırının sonunu escape chacter marifetiyle bulur. Fakat ilerde .js dosyalarımızın boyutlarını küçülmek için kullanacağımız JSMinifier, YUI Comporessor tarzı uygulamalar satırın sonundaki escape character ‘i ( n ) sildiği için kodunuzda hata çıkma olasığı yüksektir.

JavaScript’in mucidi Brenden Eich, Nisan 2012’de yayınladığı “The Infernal Smicolon” (Chennemden Gelen Noktalı Virgül) Başlıklı makalesinde noktalı virgül konulmadığında otomatik noktalı virgül ekleme davranışının doğurabileceği hatalardan bahsetmiş ve kullanılmasını tavsiye etmiştir. Makalenin tamamını buradan okuyabilirsiniz.

Yukarıda belirtilen rezerv edilmiş kelimeler dışında değişkeninize istediğiniz ismi verebilirsiniz. (JavaScript’te bütün değikenler harf, alt çizgi ( _ ) veya dolar ( $ ) işareti ile başladığını unutmayın)

JavaScript büyük-küçük karakterler konusunda hassas bir dildir. Bu nedenle
degisken
Degisken
aynı şey değildir. Eğer herhangi problem yaşamak istemiyorsanız bu kurala mutlaka dikkat edin.

Bir değişkeni tanımladıktan sonra ona bir değer verebilirsiniz.

myVariable = 'Bob';

Bu işlemleri dilerseniz tek satırda da yapabilirsiniz.

var myVariable = 'Bob';

Bir değişkenin sadece ismini yazarak çağırabilirsiniz.

myVariable;

Bir değişkene daha önce bir değer verdikten sonra bu değeri değiştirebilirsiniz.

var myVariable = 'Bob';
myVariable = 'Steve';
DeğişkenAçıklamaÖrnek
StringMetin içerikli değişken. Bu tip bir değişken tanımlamak istiyorsanız değeri tırnak içerisine alın.

var myVariable = 'Bob';

NumberSayısal değişkenler. Sayısal değişkenleri belirtmek için tırnak ihtiyacına gerek duymazsınız.

var myVariable = 10;

BooleanDoğru/Yanlış. True ve False JavaScript’in anahtar kelimeleridir ve tırnak işaretine ihtiyaç duymazlar.

var myVariable = true;

ArrayPek çok veriyi tek bir referans değişkende saklamamızı sağlayan bir yapı.

var myVariable = [1,'Bob','Steve',10];
Refer to each member of the array like this:
myVariable[0], myVariable[1], etc.

ObjectTemel olarak, JavaScript’te her şey birer nesnedir ve bir değişkende saklanabilir. JavaScript kodladığınız sürece bunu unutmayın.

var myVariable = document.querySelector('h1');

Peki neden değişkenlere ihtiyaç duyuyoruz? Programlamada her şeyi yapmak için değişkenlere ihtiyaç duyarız. Eğer değerleri değiştirmezsek, dinamik bir sonuç elde edemeyiz. Örneğin kişisel bir selamlama yazısı üretemeyiz ya da gösterimde olan fotoğraf değiştiremeyiz.

String Değerler

Bir string değişken çift tırnak ( ” ) veya tek tırnak ( ‘ ) arasında bulunan sıfır veya daha fazla karakterin yer almasıyla oluşur. Bir string değer hangi tip tırnak ile başlamış ise aynı tipteki tırnak ile sonlandırılmalıdır. Bu nedenle karakterleri kapsayan tırnaklar ya çift tırnak ya da tek tırnak içine alınır. Aşağıdaki örnekte string değerler ifade edilmiştir.

"elma"
'armut'
"1234"
"bir satır n diğer satır"
"Zafer'in kedisi"

String tipindeki değişkene veya String türündeki nesnenin metot ve özelliklerine, string değişkenin sonuna nokta ( . )  koyarak erişebiliriz ve çalıştırabiliriz. Eğer değişkeniniz string tipinde değişken (primitif) ise JavaScript otomatik olarak bu string tipindeki değişkeni geçici bir String türündeki bir nesneye dönüştürür ve metodu çağırır daha sonra da geçici olarak oluşturulan bu String nesnesi hafızadan silinir. Ayrıca String.length özelliğini de string tipindeki değişkenlerin sonuna ekleyerek kullanabilirsiniz.

console.log("Zafer'in kedisi".length); 
// Boşluk da dahil olmak üzere, string içerisindeki tüm sembollerin sayısını ekrana yazar.
// Ekrana yazılan değer: 15

Tam Sayılar

Tam sayılar; ikilik (binary) (2 tabanında), sekizlik (octal) (8 tabanında), onluk (decimal) (10 tabanında) ve onaltılık (hexadecimal) (16 tabanında) temsil edilirler.

  • Başında 0b (veya 0B) yer alan tam sayı ifadeleri ikiliktirler. İkilik tam sayılar sadece 0 ve 1 rakamlardan oluşur.
  • Başında 0 (sıfır) yer alan tam sayı ifadeleri sekizliktirler. Sekizlik tamsayılar sadece (0-7) arasında rakamlardan oluşur.
  • Onluktam sayı değeri, 0 (sıfır) ile başlamayan rakamlardan oluşurlar.
  • Başında 0x (veya 0X) yer alan tam sayı ifadeleri onaltılıktırlar. Onaltılık tam sayılar, 0-9 arasındaki rakamları içerebilidiği gibi aynı zamanda a-f veya A-F arasındaki harfleri de barındırabilirler.
0, 117 and -345 (onluk, 10 tabanında)
015, 0001 and -077 (sekizlik, 8 tabanında) 
0x1123, 0x00111 and -0xF1A7 (onaltılık, "hex" veya 16 tabanında)
0b11, 0b0011 and -0b11 (ikilik, 2 tabanında)

Ondalık Değerler

Bir ondalıklı değer;

  • İşaretli olabilen bir onluk sayı ( ” + ” veya ”  – ” ile başlayabilir),
  • Bir nokta ( ” . ” ),
  • Ondalık (noktadan sonra diğer onluk sayı),
  • Bir katsayı.

kısımları içerebilir.

Katsayı kısmı bir “e” veya “E” karakteridir ve devamında işaretli olabilen bir tamsayı gelir. Ondalıklı değerin tanımlanabilmesi için en az bir rakam ve devamında ondalıklı sayı ve katsayı”e” (veya “E”) içermelidir.

Sözdizimi :

[(+|-)][rakamlar][.rakamlar][(E|e)[(+|-)]rakamlar]
3.1415926
-.123456789
-3.1E+12
.1e-23

Boolean Değerler

Boolean tipinde iki çeşit değer bulunur. true (doğru) veya false (yanlış).

Boolean (primitif) tipindeki değerler olan true ve false ile Boolean türü olan true ve false değerlerini karıştırmayınız. Boolean türü bir nesnedir, boolean türündeki veri tipinin alınması ve üzerine bazı ek özellikler getirilmesiyle oluşturulmuştur.

Dizi Değerler

Bir dizi değeri 0 (sıfır) veya daha fazla ifadeden oluşan bir liste biçimindeki değişkenlerdir. Liste başında ve sonunda listeyi açıp / kapatan köşeli parantezler [  ] bulunur. Bir dizi oluşturup bu diziye değerler atadığınızda, belirlediğiniz değerleri kendi elemanı olarak barındıran bir dizi üretilir ve dizinin uzunluğu belirlediğiniz değer sayısı kadardır.

Bir dizi değeri, bir nesne başlatıcısı türündedir.

Aşağıdaki örnekte, 3 elemanı barındıran ve bu nedenle 3 uzunluğunda olan kahveler isimli bir dizi oluşturulmaktadır:

var kahveler = ["Türk kahvesi", "Espresso", "Mocha"];

Eğer bir dizi, üst seviye blokta sabit bir değer kullanılarak oluşturulmuşsa JavaScript, bu diziyi içeren her ifadeyi çalıştırdığında diziyi yorumlar. Buna ek olarak, fonksiyon içerisinde tanımlanan diziler, her fonksiyon çağırımında yeni bir dizi olarak bellekte oluşturulur.

Dizi değerleri ayrıca Array nesneleridir.

Dizi tanımlarken her değeri belirtmek zorunda değilsiniz. Eğer iki tane virgülü art arda koyarak dizi oluşturursanız, virgüller arasında kalan tanımlanmayan her değer için undefined değeri üretilir.

var balik = ["Japon", , "Melek"];

Bu dizi değerlere sahip 2 elemana ve bir tane boş elemana sahiptir.

(balik[0]=”Japon”, balik[1]=undefined, balik[2] = “Melek”).

eğer dizideki elemanların sonuna virgül koyarsanız virgül, JavaScript tarafından görmezden gelinir.

var dizi = ['ev', , 'okul', , ];

Yukarıdaki örnekte dizinin uzunluğu, dizi[1] ve dizi[3] değerleri tanımlanmadığı halde yine 4’tür. Sadece son virgül görmezden gelinir.

Ekstra virgüllerin davranışlarının kavranılması, JavaScript dilinin öğrenilmesi için çok önemlidir, ancak kendi kodunuzu yazarken tanımsız elemanları undefined olarak dizi içerisinde belirlemeniz, kodunuzun okunabilirliğini ve bakım yapılabilirliğini önemli ölçüde arttıracaktır.

Nesne Değerleri

Bir nesne değişkeni, süslü parantezlerle { } çevrili sıfır veya daha fazla özellik ismi ve bu özellikler ile ilişkili değerleri içeren bir listeden oluşur. Bir kod satırının başlangıcında değişken ismi olmadan sadece süslü parantezler ile başlayarak bir nesne oluşturmamanız gerekmektedir. Eğer oluşturursanız, JavaScript nesne başlangıcındaki { karakterini, bir kod bloğuna başlangıç yapılıyormuş gibi yorumlar ve bunun sonucunda ya bir hata mesajı alırsınız, yada yazdığınız kod beklendiği gibi çalışmaz.

Aşağıda, nesne değerini içeren bir örnek bulunmaktadır. otoGaleri nesnesinin ilk elemanı, “Fiat” değerini barındıran arabam isminde bir özelliği tanımlamaktadır; ikinci elemanı arabaAl özelliğidir ve function (araçTipleri("Honda")) fonksiyonu çalıştırıldıktan hemen sonra fonksiyonun sonucunu içerir; üçüncü eleman sporArabaAl özelliğidir, halihazırda varolan hayalimdekiAraba değişkenini kullanır.

var hayalimdekiAraba = "Bugatti";

function araçTipleri(markaAdı) {
  if (markaAdı == "Wolksvagen") {
    return markaAdı;
  } else {
    return "Üzgünüz, malesef " + markaAdı + " marka araba elimizde bulunmamaktadır.";
  }
}

var otoGaleri = { 
    arabam: "Fiat", 
    arabaAl: arabaTipleri("Wolksvagen"), 
    sporArabaAl: arabaTipleri(hayalimdekiAraba)
};

console.log(otoGaleri.arabam);   // Fiat
console.log(otoGaleri.arabaAl);  // Wolksvagen
console.log(otoGaleri.sporArabaAl); // Üzgünüz, malesef Bugatti marka araba elimizde bulunmamaktadır.

Ek olarak, sayısal veya string bir değer, özellik adı veya iç içe olan diğer bir nesnenin adı yerine kullanabilir. Aşağıdaki örnekte bu seçenekleri görebiliriz:

var otoGaleri = { 
    arabalar: {s: "Saab", "j": "Jeep"}, 
    7: "Mazda" 
};

console.log(otoGaleri.arabalar.j); // Jeep
console.log(otoGaleri[7]); // Mazda

Nesne özelik adları boş bir string de dahil olmak üzere herhangi bir string ifade olabilirler. Eğer özellik adı geçerli bir JavaScript identifier değilse, tırnak içinde yazılması gereklidir. Buna ek olarak geçersiz olan özellik adlarına, nokta (.) ile erişim yapılamaz, bunun yerine dizi tarzında köşeli parantezler([]) kullanılır:

var geçersizÖzellikAdlarıÖrnek = {
  "": "Boş bir string",
  "!": "Ateş!"
}
console.log(geçersizÖzellikAdlarıÖrnek."");   // SyntaxError: Unexpected string
console.log(geçersizÖzellikAdlarıÖrnek[""]);  // Boş bir string
console.log(geçersizÖzellikAdlarıÖrnek.!);    // SyntaxError: Unexpected token !
console.log(geçersizÖzellikAdlarıÖrnek["!"]); // Ateş!
var nesne = {a: "armut", 2: "iki"};
console.log(nesne.a);    // armut
console.log(nesne[2]);   // iki
//console.log(nesne.2);  // Error: missing ) after argument list
//console.log(nesne[a]); // Error: a is not defined
console.log(nesne["a"]); // armut
console.log(nesne["2"]); // iki

Düzenli İfade (RegExp) değerleri

Bir düzenli ifade değeri bölü (/) karakterleri arasında ifade edilir. Aşağıda, örnek bir düzenli ifade bulunmaktadır:

var re = /ab+c/;

Kaynaklar : https://developer.mozilla.org

0 cevaplar

Cevapla

Want to join the discussion?
Feel free to contribute!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir