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;
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şken | Açıklama | Örnek |
---|---|---|
String | Metin 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'; |
Number | Sayısal değişkenler. Sayısal değişkenleri belirtmek için tırnak ihtiyacına gerek duymazsınız. |
var myVariable = 10; |
Boolean | Doğru/Yanlış. True ve False JavaScript’in anahtar kelimeleridir ve tırnak işaretine ihtiyaç duymazlar. |
var myVariable = true; |
Array | Pek ç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. |
Object | Temel 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.
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
Cevapla
Want to join the discussion?Feel free to contribute!