JavaScript'e giriş

Adına rağmen, JavaScript yalnızca birkaç söz dizimsel benzerliğe sahip olduğundan Java ile ilgilidir. JavaScript'in ilk geliştirmedeki söz dizimi, Java'nın söz diziminden esinlenilmişti ve 1995'te Netscape Navigator'ın beta sürümünde ilk yayınlandığında hem Netscape'in diğer adlandırılmış teklifleriyle uyumlu olması hem de tarayıcıda "canlı" çalışmasına bir işaret olarak "LiveScript" adını aldı. Kısa bir süre sonra Microsoft, Internet Explorer 3.0 ile kendi JavaScript uygulaması olan "JScript"i yayınladı.

Netscape bu ilk çalışmayı kodlama dilinin diğer tarayıcılar tarafından nasıl anlaşılması gerektiğini biçimlendirmek ve ayrıntılandırmak için teknik standartlar geliştiren ve yayınlayan bir kuruluş olan Ecma International'a gönderdi. Ecma International, 1997'de ECMA-262'yi yayınlayarak ECMAScript adlı bir kodlama dilinin ilk sürümünü standart hale getirdi. ECMAScript, daha spesifik kodlama dillerinin oluşturulmasında bilgi veren standarttır. Örneğin, Microsoft'un daha sonra artık kullanımdan kaldırılan JScript, Adobe ActionScript ve JavaScript'in kendisi üzerinde yaptığı çalışmalar.

Bu ayrım, JavaScript'in belirli yönlerini ve özelliklerini ele alırken önemlidir. "ES5", daha fazla parçalı geliştirme sürecinin ardından 2009'da ECMAScript standardının "sürümü olan" ilk sürümünü ifade eder. "ES6" (veya "ES2015"), 2015'te yayınlanan ECMAScript'in altıncı sürümü tarafından belirlenen standartların kısaltmasıdır. ES6'dan sonra ECMAScript standardının yeni sürümleri her yıl yayınlanmıştır. Her sürümün değişiklikleri ve eklemeleri, yıl bazında "ES2016" veya "ES2017"de belirtildiği şekilde yayınlanır.

Temel kurallar

JavaScript, derlenen dillerden farklı olarak, bir kişinin yazdığı koddan tarayıcının anlayabileceği bir forma çevrilmez. İşaretleme, resimler ve stil sayfaları gibi öğelerin yanı sıra tarayıcıya bir komut dosyası gönderilir. Tarayıcı, bunu yazıldığı gibi yorumlar: soldan sağa ve yukarıdan aşağıya ayrıştırılan, kullanıcıların okuyabileceği bir Unicode karakter dizisi olarak.

JavaScript yorumlayıcısı bir komut dosyası aldığında, ilk olarak bir komut dosyasını oluşturan uzun karakter dizesini ayrıştırarak ve bunu aşağıdaki ayrı giriş öğelerine dönüştürerek sözlüksel analiz gerçekleştirir:

  • Token'lar
  • Biçim kontrolü karakterleri
  • Hat sonlandırıcılar
  • Yorum sayısı
  • Boşluk (neredeyse her zaman sekmeler ve boşluklar anlamına gelir).

Komut dosyasına, aksini yapmaya yönelik açık talimatlar eklemediğiniz sürece, yeniden yüklendikten veya geçerli sayfadan ayrıldıktan sonra komut dosyasının sonuçları kalıcı olmaz.

JavaScript uygulamaları yüksek düzeyde ifadeler ve ifadelerden oluşur.

İfadeler

İfade, bir işlemi temsil eden bir veya daha fazla kod satırından oluşan bir talimat birimidir. Örneğin, myVariable adlı değişkene bir değer atamak için aşağıdaki ifadeyi kullanabilirsiniz:

let myVariable = 4;

myVariable;
> 4

Doğru yorumlanabilmeleri için ifadelerin noktalı virgülle bitmesi gerekir. Ancak bu noktalı virgüller, JavaScript'i yazırken her zaman gerekli değildir. Otomatik noktalı virgül ekleme adlı bir özellik, eksik bir noktalı virgülün hataya neden olacağı durumlarda tam bir ifadeden sonra gelen satır aralarının noktalı virgül olarak kabul edilmesini sağlar.

ASI, hata düzeltme işlevidir, JavaScript'in geniş kapsamlı bir yönü değildir. Bu hata düzeltmeye çok fazla güvenmek kodunuzun bozan belirsizliğe yol açabileceğinden, yine de her ifadeyi noktalı virgülle manuel olarak sonlandırmanız gerekir.

İfadeleri engelle

Engelleme ifadesi, bir çift küme parantezi ({}) içinde istenilen sayıda ifadeyi ve bildirimi gruplandırır. JavaScript'in yalnızca bir tane beklediği yerlerde ifadeleri birleştirmenize olanak tanır.

En sık blok ifadeleri, if gibi denetim akışı ifadelerinin yanında gösterilir:

if ( x === 2 ) {
  //some behavior;
}

İfadeler

İfade, bir değerle sonuçlanan bir kod birimidir ve bu nedenle bir değerin beklendiği her yerde kullanılabilir. 2 + 2, 4 değeriyle sonuçlanan bir ifadedir:

2 + 2;
> 4

Eşleşen bir parantez çifti olan "gruplandırma operatörü", bir ifadenin bölümlerinin belirli bir bölümünün tek bir birim olarak değerlendirilmesini sağlamak için ifadeleri gruplandırmak amacıyla kullanılır. Örneğin, override the mathematical order of operations veya kodun okunabilirliğini iyileştirmek için bir gruplama operatörü kullanabilirsiniz:

2 + 2 * 4;
> 10

( 2 + 2 ) * 4;
> 16

let myVariable = ( 2 + 2 );

myVariable;
> 4

Zayıf yazma

JavaScript, zayıf yazılmış bir dildir. Diğer bir deyişle, bir veri değerinin belirli bir veri türü olarak açıkça işaretlenmesi gerekmez. Güçlü yazılmış bir dilin aksine JavaScript, istenen türü bir değerin içeriğinden çıkarıp değeri bu türe dönüştürebilir. Bu sürece tür baskı adı verilir.

Örneğin, Python gibi güçlü bir şekilde yazılmış bir dilde bir dize değerine sayı eklerseniz sonuç bir hata oluşur:

>>> "1" + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

JavaScript, hata döndürmek yerine sayı değerini bir dizeye zorlar ve iki değeri birleştirir. Bu, bir dizeye herhangi bir değer eklenirken ortaya çıkabilecek en olası davranıştır:

"1" + 1;
> "11"

Veri türleri açıkça zorlanabilir. Aşağıdaki örnek, 100 sayısal değerini JavaScript'in yerleşik toString yöntemini kullanarak "100" dize değerine zorlar:

let myVariable = 100;

typeof myVariable;
> "number"

myVariable = myVariable.toString();
> "100"

typeof myVariable;
> "string"

Büyük/küçük harfe duyarlılık

HTML'nin ve CSS'nin büyük kısmının aksine JavaScript'in kendisi büyük/küçük harfe duyarlıdır. Bu nedenle, dile entegre edilen özellik ve yöntemlerden tanımladığınız tanımlayıcılara kadar her zaman tutarlı bir şekilde büyük harf kullanmanız gerekir.

console.log( "Log this." );
> Log this.

console.Log( "Log this too." );
> Uncaught TypeError: console.Log is not a function
const myVariable = 2;

myvariable;
> Uncaught ReferenceError: variablename is not defined

myVariable;
> 2

Boşluk

JavaScript, boşluklara duyarlı değildir. Bu, çevirmenin kullanılan boşlukların miktarını ve türünü (sekmeler veya boşluklar) yok saydığı anlamına gelir.

                     console.log(       "Log this"  );console.log("Log this too");
> "Log this."
> "Log this too."

Bununla birlikte, boşluğun varlığı, sözlükçe jetonlar arasında ayırıcı olarak önemli olabilir:

let x;

[jetonlar: [let] [x] ]

letx;
> Uncaught ReferenceError: letx is not defined

[jetonlar: [letx] ]

Anlamlı sözcüksel belirteçleri ayırmak için boşluk kullanıldığında, ayrıştırıcı boşluk miktarını ve türünü yok sayar:

let           x                             =                           2;

[jetonlar: [let] [x] [=] [2] ]

Aynı durum satır sonları için de geçerlidir. Ancak satır sonlarının bir ifadeyi zamanından önce sona erdirerek sorunlara neden olabileceği durumlar vardır:

let x
=
2;

[jetonlar: [let] [x] [=] [2] ]

Biçimsel açıdan konuşmak gerekirse, bazı ifade türleri genellikle tek bir satırı kaplar:

let x = 1;
let y = 2;

Bazı ifadelerde genellikle birden çok satır kullanılır:

if ( x == 2 ) {
  //some behavior;
}

Bununla birlikte, bu kurallar kesinlikle okunabilirlik amacıyla belirlenmiştir. JavaScript, önceki örnekleri aşağıdaki gibi yorumlar:

let x=1;let y=2;
if(x==2){}

Bu nedenle, aktarım boyutunu küçültmek için komut dosyalarından gerekli olmayan boşlukları kaldıran otomatik bir işlem, bir dizi optimizasyonla birlikte JavaScript'i üretim ortamı için hazırlamada yaygın bir adımdır.

JavaScript'te boşluk karakterlerinin kullanılması büyük ölçüde yazar ve bakıma ilişkin tercihlere bağlıdır. Kodla katkıda bulunan birden fazla geliştiricinin bulunduğu JavaScript projeleri, tutarlı kod biçimlendirmesi sağlamak için genellikle belirli boşluk kurallarını önerir veya uygular (örneğin, iç içe yerleştirilmiş ifadeleri girintilendirmek için sekme veya boşluk kullanımı):

let myVariable = 10;

if ( typeof myVariable === "number" ) {
    console.log( "This variable is a number." );
    if( myVariable > 5 ) {
     console.log( "This variable is greater than five." );
    }
}

> "This variable is a number."
> "This variable is greater than five."

Öğrendiklerinizi sınayın

İfade nedir?

Değer elde edilmesini sağlayan kod birimi.
Kodun işlevini açıklayan bir yorum.
İfade ve beyan grubu.

JavaScript büyük/küçük harfe duyarlıdır.

Doğru
Yanlış