From 8f2731905212f6e7eb2d9793ad20b8b448c54ccf Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:31 +0100 Subject: unslug tr: move --- .../control_flow_and_error_handling/index.html | 419 +++++++++++++ .../web/javascript/guide/fonksiyonlar/index.html | 662 --------------------- files/tr/web/javascript/guide/functions/index.html | 662 +++++++++++++++++++++ files/tr/web/javascript/guide/ifadeler/index.html | 419 ------------- .../index.html" | 504 ---------------- .../guide/working_with_objects/index.html | 504 ++++++++++++++++ 6 files changed, 1585 insertions(+), 1585 deletions(-) create mode 100644 files/tr/web/javascript/guide/control_flow_and_error_handling/index.html delete mode 100644 files/tr/web/javascript/guide/fonksiyonlar/index.html create mode 100644 files/tr/web/javascript/guide/functions/index.html delete mode 100644 files/tr/web/javascript/guide/ifadeler/index.html delete mode 100644 "files/tr/web/javascript/guide/nesneler_ile_\303\247al\304\261\305\237mak/index.html" create mode 100644 files/tr/web/javascript/guide/working_with_objects/index.html (limited to 'files/tr/web/javascript/guide') diff --git a/files/tr/web/javascript/guide/control_flow_and_error_handling/index.html b/files/tr/web/javascript/guide/control_flow_and_error_handling/index.html new file mode 100644 index 0000000000..dcf6d13466 --- /dev/null +++ b/files/tr/web/javascript/guide/control_flow_and_error_handling/index.html @@ -0,0 +1,419 @@ +--- +title: Kontrol akışı ve hata yakalama +slug: Web/JavaScript/Guide/Ifadeler +tags: + - Başlangıç + - JavaScript + - Rehberi +translation_of: Web/JavaScript/Guide/Control_flow_and_error_handling +--- +
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Grammar_and_types", "Web/JavaScript/Guide/Loops_and_iteration")}}
+ +

JavaScript, uygulamanızın etkilişim halinde olmasını sağlayan kontrol akışı ifadeleri gibi birçok ifadeyi destekler. Bu bölümde, bu ifadeler üzerine durulacaktır.

+ +

En basit olarak anlatmak gerekirse, JavaScript tarafından çalıştırılacak her komuta ifade adı verilir. Noktalı virgül (;) karakteri ise, JavaScript kodundaki ifadelerin birbirinden ayrılması için kullanılmaktadır.

+ +

Blok ifadesi

+ +

En temel ifade türü, ifadelerin gruplanmasını sağlayan blok ifadesidir. Blok ifadesi,  bir çift süslü parantezle sınırlandırılır:

+ +
{ ifade_1; ifade_2; . . . ifade_n; }
+
+ +

Örnek

+ +

Blok ifadeleri genellikle kontrol akışı ifadeleri ile birlikte kullanılır (örn: if, for, while).

+ +
while (x < 10) {
+  x++;
+}
+
+ +

Buradaki, { x++; } bir blok ifadesidir.

+ +

Önemli: ECMAScript2015'ten önceki JavaScript'te blok etki alanı bulunmamaktadır. Blok içerisinde yer alan değişkenlerin etki alanı, onları içeren fonksiyon veya .js dosyası kadar geniş bir alanı kapsar, ve bu değişkenler üzerinde yapılan değişiklikler bloğun ötesinde de kalıcılık gösterir. Başka bir deyişle blok ifadeleri, değişkenler için bir etki alanı oluşturmazlar. C ve Java dilinden aşina olduğunuz değişkenden bağımsız blok ifadeleri, JavaScript'te tamamıyla farklı bir davranış sergileyebilirler. Aşağıdaki örneği inceleyelim:

+ +
var x = 1;
+{
+  var x = 2;
+}
+console.log(x); // Ekrandaki çıktı: 2
+
+ +

Kodun çıktısı 2 olacaktır. Çünkü blok içerisindeki var x ifadesi  ile bloktan önce gelen var x ifadesi aynı etki alanı içerisindedir. Eğer üstteki kod C veya Java dilinde olsaydı, ekrandaki çıktı 1 olacaktı.

+ +

ECMAScript 6 ile birlikte gelen let tanımıyla oluşturulan değişkenler, blok seviyesinde etki alanına sahiptir. Daha fazla bilgi için {{jsxref("Statements/let", "let")}} sayfasına bakınız.

+ +

Koşullu ifadeler

+ +

Belirli bir koşul sağlandığında çalışacak komutlar kümesine koşullu ifade denilir. JavaScript, iki adet koşullu ifadeyi destekler: if...else ve switch.

+ +

if...else ifadesi

+ +

Belirli bir mantıksal durum sağlandığında bir ifadenin çalıştırılması için if ifadesi kullanılır. Mantıksal durum sağlanmadığında çalıştırılacak komutlar için ise else kelimesi kullanıılabilir. Bir if ifadesi aşağıdaki şekilde oluşturulur:

+ +
if (mantıksal_durum) {
+  ifade_1;
+} else {
+  ifade_2;
+}
+ +

mantıksal_durum, true veya false değerler alabilen herhangi bir ifade olabilir. Eğer mantıksal_durum, true olursa ifade_1 çalışacak; aksi halde, ifade_2 is çalışacaktır. ifade_1 ve ifade_2 ifadeleri, çalıştırılacak herhangi bir ifade olabilir.

+ +

Birçok mantıksal durumun kontrolünün bütün bir halde yapılabilmesi için aşağıdaki şekilde else if tanımlamalarını kullanabilirsiniz.

+ +
if (mantıksal_durum_1) {
+  ifade_1;
+} else if (mantıksal_durum_2) {
+  ifade_2;
+} else if (mantıksal_durum_n) {
+  ifade_n;
+} else {
+  ifade_son;
+}
+
+ +

Üstteki gibi çoklu mantıksal durumların olduğu ifadelerde,  yalnızca true olan ilk mantıksal durum çalıştırılır, ilişkili diğer kontrol ifadeleri çalıştırılmaz. Birçok ifadenin çalıştırılması için ifadeler, blok ifadesi ({ ... }) içerisinde gruplandırılır. Özellikle iç içe if ifadelerinin olduğu durumlar başta olmak üzere blok ifadeleri, geliştiriciler arasında yaygın olarak kullanılmaktadır:

+ +
if (mantıksal_durum) {
+  eğer_durum_true_ise_çalışacak_ifade_1;
+  eğer_durum_true_ise_çalışacak_ifade_2;
+} else {
+  eğer_durum_false_ise_çalışacak_ifade_3;
+  eğer_durum_false_ise_çalışacak_ifade_4;
+}
+
+ +
mantıksal_durum kısmında herhangi bir değişkene değer atamak yanlış bir kullanımdır, çünkü kodunuza sizden sonra bakan biri atama işlemini ilk bakışta eşitlik olarak görebilir. Örneğin aşağıdaki şekilde bir kullanım yanlıştır:
+ +
+ +
if (x = y) {
+  /* diğer ifadeler */
+}
+
+ +

Eğer mantıksal_durum kısmında gerçekten atama yapmanız gerekiyorsa, bunu yapmanın en iyi yolu atama ifadesini parantezler içerisine almaktır. Örneğin:

+ +
if ((x = y)) {
+  /* diğer ifadeler */
+}
+
+ +

Yanlışımsı (falsy) değerler

+ +

Aşağıdaki değerler JavaScript tarafından false olarak değerlendirilir ve ({{Glossary("Falsy")}} değerler olarak bilinir):

+ + + +

Mantıksal durum içerisine alınan diğer bütün değerler ve nesneler, JavaScript tarafından true olarak değerlendirilir.

+ +

{{jsxref("Boolean")}} nesnesindeki true ve false ile ilkel tipteki true ve false değerlerini karıştırmayınız. Örneğin:

+ +
var b = new Boolean(false);
+if (b) // bu ifade true olarak değerlendirilir
+
+ +

Örnek

+ +

Aşağıdaki örnekte bulunan checkData fonksiyonu, HTML dokümanındaki formda yer alan ikiKarakter isimli girdi nesnesine ait değerin, karakter sayısı 2 ise true döndürülür, değilse ekrana bir uyarı metni basılır ve false döndürülür:

+ +
function checkData() {
+  if (document.form1.ikiKarakter.value.length == 2) {
+    return true;
+  } else {
+    alert("Tam olarak iki karakter giriniz. " +
+    document.form1.ikiKarakter.value + " geçersizdir.");
+    return false;
+  }
+}
+
+ +

switch ifadesi

+ +

Bir switch ifadesine, mantıksal bir ifade verilir ve bu ifade ile eşleşen bir etiket varsa, etiketi içeren case ifadesi çalıştırılır, yoksa varsayılan ifade (default) çalıştırılır. Örnek:

+ +
switch (mantıksal_ifade) {
+  case etiket_1:
+    ifadeler_1
+    [break;]
+  case etiket_2:
+    ifadeler_2
+    [break;]
+    ...
+  default:
+    varsayılan_ifadeler
+    [break;]
+}
+
+ +

Üstteki kodu çalıştırırken JavaScript, mantıksal_ifade ile eşleşen etikete sahip case cümleciğini arar ve ilişkili ifadeleri çalıştırır. Eğer eşleşen hiçbir etiket bulunamadıysa, default cümleciğinin olup olmadığına bakar, varsa ve ilgili varsayılan ifadeleri çalıştırır. Eğer default cümleciği de yoksa, switch bloğundan çıkılır.  default cümleciğinin sırası önemli olmamakla birlikte, genel kullanımlarda hep en sonda yer almaktadır.

+ +

Her case cümleciğinde, isteğe bağlı olarak konulan break ifadesi,  eşleşen ifadenin çalıştırılıp tamamlandıktan sonra switch bloğundan çıkmayı sağlar. Eğer break ifadesi yazılmazsa, program switch ifadesi içerisindeki bir sonraki case ifadesini çalıştırarak yoluna devam eder. 

+ +

Örnek

+ +

Aşağıdaki örnekte, meyve ifadesinin değeri "Muz" ise,  program "Muz" değeri ile eşleşen case "Muz" ifadesini çalıştırır. break ile karşılaşıldığında, program switch bloğundan çıkar ve switch bloğundan sonraki kodları çalıştırır. Eğer break ifadesi olmasaydı, "Muz" ile alakasız olan, case "Kiraz" ifadesi de çalıştırılacaktı.

+ +
switch (meyve) {
+  case "Portakal":
+    console.log("Portakalların kilosu ₺1.99 lira.");
+    break;
+  case "Elma":
+    console.log("Elmaların kilosu ₺1.49 lira.");
+    break;
+  case "Muz":
+    console.log("Muzların kilosu ₺2.49 lira.");
+    break;
+  case "Kiraz":
+    console.log("Kirazların kilosu ₺2.19 lira.");
+    break;
+  case "Çilek":
+    console.log("Çileklerin kilosu ₺2.49 lira.");
+    break;
+  case "Avokado":
+    console.log("Avokadoların kilosu ₺5.99 lira.");
+    break;
+  default:
+   console.log("Maalesef elimizde hiç " + meyve + " kalmadı.");
+}
+console.log("Başka bir şey lazım mı?");
+ +

Exception (Hata) yakalama ifadeleri

+ +

throw ifadesi ile exception fırlatabilir, try...catch ifadeleri kullanarak hata yakalama işlemlerinizi yürütebilirsiniz.

+ + + +

Exception türleri

+ +

JavaScript'te neredeyse her nesne fırlatılabilir. Buna rağmen fırlatılacak türdeki nesnelerin hepsi aynı şekilde oluşturulmamışlardır. Sayı ve string değerlerinin hata olarak fırlatılması oldukça yaygın olmasına rağmen, bu amaç için belirli olarak  oluşturulan aşağıdaki exception türlerinden birinin kullanılması daha anlamlıdır:

+ + + +

throw ifadesi

+ +

Bir exception fırlatmak için throw ifadesini kullanılır. Bir exception fırlattığınız zaman, fırlatılacak ifadeyi de belirlersiniz:

+ +
throw ifade;
+
+ +

Herhangi bir türdeki ifadeyi exception olarak fırlatabilirsiniz. Aşağıdaki kodda çeşitli türlerdeki exception'lar fırlatılmaktadır:

+ +
throw "Hata2";   // String türü
+throw 42;         // Sayı türü
+throw true;       // Boolean türü
+throw { toString: function() { return "Ben bir nesneyim."; } };
+
+ +
Not: Bir exception fırlatırken ilgili exception nesnesini belirleyebilirsiniz. Daha sonra catch bloğunda hatayı yakaladığınızda ilgili exception nesnesinin özelliklerine erişebilirsiniz. Aşağıdaki ifadede, KullanıcıHatası sınıfından bir nesne oluşturulmakta, ve throw ifadesinde bu nesne fırlatılmaktadır.
+ +
// KullanıcıHatası türünde nesne oluşturuluyor
+function KullanıcıHatası(mesaj){
+  this.mesaj=mesaj;
+  this.adı="KullanıcıHatası";
+}
+
+// Oluşturulan KullanıcıHatası nesnesinin konsola yazıldığında güzel bir
+// ifade yazılması için aşağıdaki şekilde toString() fonksiyonunu override ediyoruz.
+KullanıcıHatası.prototype.toString = function () {
+  return this.adı+ ': "' + this.mesaj+ '"';
+}
+
+// KullanıcıHatası nesnesi yaratılır ve exception olarak fırlatılır
+throw new KullanıcıHatası("Yanlış bir değer girdiniz.");
+ +

try...catch ifadesi

+ +

try...catch ifadesi, çalıştırılması istenen ifadeleri bir blokta tutar. Fırlatılacak exception için bir veya daha fazla ifade belirlenerek, oluşacak bir try...catch ifadesi tarafından yakalanması sağlanır.

+ +

try...catch ifadesi, çalıştırılacak bir veya daha fazla komutun yer aldığı, ve try bloğu içerisinde hata oluştuğunda çalışacak ifadeleri içeren, 0 veya daha fazla catch ifadesinin yer aldığı bir try bloğu içerir. Bu şekilde, try içerisinde yer alan başarıyla çalışmasını istediğiniz kodlarda bir sorun oluştuğunda, catch bloğunda bu sorunun üstesinden gelecek kontrolleri yazabilirsiniz. Eğer try bloğu içerisindeki herhangi bir ifade (veya try bloğu içerisinden çağırılan fonksiyon) bir exception fırlatırsa, JavaScript anında catch bloğuna bakar. Eğer try bloğu içerisinde bir exception fırlatılmazsa, catch bloğu çalıştırılmaz ve atlanır. try ve catch bloklarından sonra, eğer varsa finally bloğu da çalıştırılır.

+ +

Aşağıdaki örnekte bir try...catch ifadesi kullanılmaktadır. Fonksiyonda, parametre olarak geçilen ay sayısı değeri baz alınarak, diziden ilgili ayın adı getirilmektedir. Eğer ay sayısı değeri 1-12 arasında değilse, "Geçersiz ay sayısı." değeri exception olarak fırlatılır. catch bloğundaki ayAdı değişkeni de "bilinmeyen" olarak atanır.

+ +
function getAyAdı(aySayisi) {
+  aySayisi= aySayisi-1; // Dizi indeksi için aySayisi 1 azaltılır (1=Oca, 12=Ara)
+  var aylar= ["Oca","Şub","Mar","Nis","May","Haz","Tem",
+                "Ağu","Eyl","Eki","Kas","Ara"];
+  if (aylar[aySayisi] != null) {
+    return aylar[aySayisi];
+  } else {
+    throw "Geçersiz ay sayısı."; // burada throw ifadesi kullanılıyor
+  }
+}
+
+try { // denenecek ifadeler
+  ayAdı = getAyAdı(aySayim); // function could throw exception
+}
+catch (e) {
+  ayAdı = "bilinmiyor";
+  hatalarımıKaydet(e); // hataların kaydedilmesi için exception nesnesi geçiliyor.
+}
+
+ +

catch bloğu

+ +

try bloğunda oluşturulan tüm exception'ların yakalanması için catch bloğunu kullanabilirsiniz.

+ +
catch (exceptionDeğişkeni) {
+  ifadeler
+}
+
+ +

catch bloğunda, throw ifadesi tarafından belirlenecek değerin tutulması için bir değişken tanımlanır; bu değişken kullanılarak, fırlatılan exception ile ilgili bilgiler elde edilmiş olur. catch bloğuna girildiğinde JavaScript, bu değişkenin içini doldurur; değişken değeri sadece catch bloğu süresince geçerli kalır; catch bloğu çalışmasını tamamladığında değişken artık mevcut değildir.

+ +

Örneğin aşağıdaki kodda, bir exception fırlatılıyor, ve fırlatıldığı anda otomatik olarak catch bloğuna iletiliyor.

+ +
try {
+  throw "hata" // bir exception oluşturur.
+}
+catch (e) {
+  // herhangi bir exception'ı yakalamak için oluşturulan ifadeler
+  hatalarımıKaydet(e) // hataların kaydedilmesi için exception nesnesi geçilir.
+}
+
+ +

finally bloğu

+ +

finally bloğu, try...catch ifadesinden sonra çalıştırılacak kod satırlarını içerir. finally bloğu, hata olsun veya olmasın çalışır. Eğer hata olmuşsa ve exception fırlatılmışsa, bu hatayı karşılayacak catch bloğu olmasa dahi finally bloğu çalışır. 

+ +

finally bloğu, hata oluştuğunda bu hataya sebep olan değişkenin kullandığı kaynakların sisteme geri verilmesi için en iyi yerdir. Bu şekilde hata tüm ayrıntılarıyla çözülmüş olur. Aşağıdaki örnekte bir dosya açılmakta, ve sonrasında dosyaya yazma işlemleri için kullanan ifadeler çalıştırılmaktadır (Sunucu taraflı yazılmış koddur. İstemci tarafında dosyaya yazma işlemleri güvenlik açısından engellenmiştir. Eğer dosya, yazmak için açılırken bir exception fırlatılırsa, kod hata vermeden önce finally bloğu çalışır ve erişilecek dosyayı kapatır.

+ +
dosyaAç();
+try {
+  dosyayaYaz(veriler); // Bu kısım hata verebilir
+} catch(e) {
+  hatayıKaydetveGöster(e); // Hata ile ilgili bilgiler kaydedilir ve kullanıcıya bir hata mesajı sunulur.
+} finally {
+  dosyayıKapat(); // Dosyayı kapatır (hata olsa da olmasa da).
+}
+
+ +

Eğer finally bloğu bir değer geri döndürürse,  bu değer, try ve catch içerisindeki return ifadelerine bakmaksızın, try-catch-finally ifadesinin tamamı için geri dönüş değeri haline gelir:

+ +
function f() {
+  try {
+    console.log(0);
+    throw "hata";
+  } catch(e) {
+    console.log(1);
+    return true; // Buradaki return ifadesi,
+                 // finally bloğu tamamlanana dek duraklatılır.
+    console.log(2); // Üstteki return ifadesinden dolayı çalıştırılmaz.
+  } finally {
+    console.log(3);
+    return false; // catch kısmındaki return ifadesinin üstüne yazar ve geçersiz hale getirir.
+    console.log(4); // return'den dolayı çalıştırılmaz.
+  }
+  // Şimdi "return false" ifadesi çalıştırılır ve fonksiyondan çıkılır.
+  console.log(5); // Çalıştırılmaz.
+}
+f(); // Konsola 0 1 3 yazar ve false değerini döndürür.
+
+ +

finally bloğunun, geri dönüş değerlerinin üstüne yazma etkisi, aynı zamanda catch bloğu içerisindeki exception'lar için de aynı şekilde çalışır:

+ +
function f() {
+  try {
+    throw "hata";
+  } catch(e) {
+    console.log('İçerideki "hata" yakalandı.');
+    throw e; // Burası finally bloğu tamamlanana dek duraklatılır.
+  } finally {
+    return false; // Önceki "throw" ifadesinin üstüne yazar ve
+                  //  throw ifadesini geçersiz hale getirir.
+  }
+  // Şimdi "return false" ifadesi çalıştırılır.
+}
+
+try {
+  f();
+} catch(e) {
+  // f() fonksiyonundaki throw ifadesi geçersiz hale geldiği için
+  //  buradaki catch bloğu çalıştırılmaz.
+  console.log('Diğer "hata" yakalandı.');
+}
+
+// Ekran çıktısı: İçerideki "hata" yakalandı.
+ +

İçiçe try...catch ifadeleri

+ +

Bir veya daha fazla iç içe try...catch ifadeleri tanımlayabilirsiniz. Eğer içteki try...catch ifadesinin catch bloğu yoksa, bir dıştaki try...catch ifadesinin catch bloğu kontrol edilir.

+ +

Error nesnelerinin etkili kullanımı

+ +

Error nesnesinin türüne bağlı olarak,  'name' ve 'message' özellikleri vasıtasıyla daha anlamlı hata mesajları tanımlayabilirsiniz. 'name' özelliği, oluşan hatayı sınıflandırır (örn, 'DOMException' veya 'Error'). 'message' ise hata nesnesinin string'e dönüştürülmesine nazaran  genellikle daha kısa bir mesaj sunulmasına olanak tanır.

+ +

Eğer kendi exception nesnelerinizi fırlatıyorsanız ve bu özellikleri kullanarak hatayı anlamlı hale getirmek istiyorsanız Error sınıfının yapıcısının getirdiği avantajlardan faydalanabilirsiniz (örneğin catch bloğunuzun, kendi exception'larınız ile sistem exception'ları arasındaki farkı ayırt edemediği gibi durumlarda). Aşağıdaki örneği inceleyelim:

+ +
function hatayaMeyilliFonksiyon() {
+  if (hataVerenFonksiyonumuz()) {
+    throw (new Error('Hata oluştu'));
+  } else {
+    sistemHatasıVerenFonksiyon();
+  }
+}
+
+try {
+  hatayaMeyilliFonksiyon();
+}
+catch (e) {
+  console.log(e.name); // 'Error' yazar
+  console.log(e.message); // 'Hata oluştu' veya bir JavaScript hata mesajı yazar
+}
+ +

Promise nesneleri

+ +

ECMAScript2015 ile birlikte JavaScript'e, asenkron ve geciktirilmiş işlemlerin akış kontrolünün sağlanması için {{jsxref("Promise")}} nesneleri gelmiştir.

+ +

Bir Promise nesnesi aşağıdaki durumlardan birinde bulunur:

+ + + +

+ +

XHR ile resim yükleme

+ +

Promise ve XMLHttpRequest kullanarak bir resmin yüklenmesi için MDN GitHub promise-test sayfasında basit bir örnek mevcuttur. Ayrıca örneği canlı olarak da görebilirsiniz. Örnekteki her aşamaya yorum satırları eklenmiştir. Bu sayede Promise ve XHR mimarisini daha yakından izleyebilirsiniz. Aşağıda Promise nesnesinin akışını gösteren örneğin belgelendirilmemiş sürümü bulunmaktadır:

+ +
function resimYükle(url) {
+  return new Promise(function(başarıSonucundaFonk, hataSonucundaFonk) {
+    var istek = new XMLHttpRequest();
+    istek.open('GET', url);
+    istek.responseType = 'blob';
+    istek.onload = function() {
+      if (istek.status === 200) {
+        başarıSonucundaFonk(istek.cevabı);
+      } else {
+        hataSonucundaFonk(Error('Resim yüklenemedi; hata kodu:'
+                     + istek.hataKodu));
+      }
+    };
+    istek.onerror = function() {
+      hataSonucundaFonk(Error('Bir bağlantı hatası oluştu.'));
+    };
+    istek.send();
+  });
+}
+ +

Daha fazla detaylı bilgi için {{jsxref("Promise")}} sayfasına bakınız.

+ +
{{PreviousNext("Web/JavaScript/Guide/Grammar_and_types", "Web/JavaScript/Guide/Loops_and_iteration")}}
diff --git a/files/tr/web/javascript/guide/fonksiyonlar/index.html b/files/tr/web/javascript/guide/fonksiyonlar/index.html deleted file mode 100644 index e688bd5dcb..0000000000 --- a/files/tr/web/javascript/guide/fonksiyonlar/index.html +++ /dev/null @@ -1,662 +0,0 @@ ---- -title: Fonksiyonlar -slug: Web/JavaScript/Guide/Fonksiyonlar -tags: - - Başlangıç seviyesi - - Fonksiyonlar - - Rehber -translation_of: Web/JavaScript/Guide/Functions ---- -
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}
- -

Foksiyonlar, JavaScript'in en temel yapıtaşlarından biridir. Her bir fonksiyon, bir JavaScript işlemidir—herhangi bir görevi yerine getiren  veya değer hesaplayan bir ifade kümesini içerirler. Bir fonksiyonu kullanmak için, fonksiyonu çağıracağınız kısmın faaliyet gösterdiği alanda fonksiyonu tanımlıyor olmanız gerekmektedir.

- -

Daha fazla bilgi için JavaScript fonksiyonları ile ilgili buradaki detaylı kaynağı inceleyebilirsiniz.

- -

Fonksiyonların tanımlanması

- -

Fonksiyon tanımlamaları

- -

Bir fonksiyon tanımı (fonksiyon betimlemesi, veya fonksiyon ifadesi de denir)  function anahtar kelimesinden sonra aşağıdaki kısımları içerir:

- - - -

Örneğin aşağıdaki kodda karesiniAl isimli basit bir fonksiyon tanımlanmıştır:

- -
function karesiniAl(sayı) {
-  return sayı * sayı;
-}
-
- -

karesiniAl fonksiyonu, sayı isminde tek bir parametre içerir. Tek bir ifade içeren fonksiyonda, sayı parametresinin kendisi ile çarpılıp geri döndürülmesi işlemi yapılmıştır. return ifadesi, fonksiyon tarafından döndürülen değeri belirler.

- -
return sayı * sayı;
-
- -

Sayı türünde olduğu gibi ilkel parametreler fonksiyonlara değer ile geçilirler; ilgili değer, fonksiyona parametre olarak geçildiğinde parametre değerinin fonksiyonda ayrı bir kopyası alınır, eğer fonksiyon içerisinde parametre değerinde değişik yapılırsa, bu değişiklik sadece kopyalanan değer üzerinde gerçekleşmiştir, fonksiyona geçilen asıl değer değişmez.

- -

Eğer bir nesneyi ({{jsxref("Array")}} veya bir kullanıcı tanımlı nesne gibi ilkel olmayan değer) fonksiyona parametre olarak geçerseniz, nesne fonksiyon içerisinde kopyalanmadığı için nesne üzerinde yapılan değişiklikler fonksiyon dışında da korunur. Aşağıdaki örneği inceleyelim:

- -
function arabamıDeğiştir(araba) {
-  araba.markası = "Toyota";
-}
-
-var arabam = {markası: "Honda", modeli: "Accord", yılı: 1998};
-var x, y;
-
-x = arabam.markası ; // "Honda" değerini getirir
-
-arabamıDeğiştir(arabam);
-y = arabam.markası; // "Toyota" değeri döndürülür
-                    // (markası özelliği fonksiyon tarafından değiştirilmiştir)
-
- -

Fonksiyon ifadeleri

- -

Yukarıdaki fonksiyon tanımlaması sözdizimsel olarak bir ifade olmasına rağmen, fonksiyonlar ayrıca bir fonksiyon ifadesi ile de oluşturulabilirler. Böyle bir fonksiyon anonim olabilir; bir isme sahip olmak zorunda değildir. Örnek olarak, matematikteki kare alma fonksiyonu aşağıdaki şekilde tanımlanabilir:

- -
var karesiniAl = function(sayı) { return sayı * sayı };
-var x = karesiniAl(4) // x'in değeri 16 olur.
- -

Fonksiyon ifadesi ile belirtilen fonksiyon adı, fonksiyonun içerisinde kendisini çağıracak şekilde kullanılabilir:

- -
var faktoriyel = function fa(n) { return n < 2 ? 1 : n * fa(n-1) };
-
-console.log(faktoriyel(3));
-
- -

Fonksiyon ifadeleri, bir fonksiyon diğer fonksiyona parametre olarak geçilirken oldukça elverişlidir. Aşağıdaki örnekte map fonksiyonu tanımlanmış ve ilk parametresinde başka bir fonksiyonu parametre olarak almıştır:

- -
function map(f,d) {
-  var sonuç = [], // Yeni bir dizi
-      i;
-  for (i = 0; i != d.length; i++)
-    sonuç[i] = f(d[i]);
-  return sonuç;
-}
-
- -

Aşağıdaki kodda kullanımı mevcuttur:

- -
var çarpım = function(x) {return x * x * x}; // Fonksiyon ifadesi.
-map(çarpım, [0, 1, 2, 5, 10]);
-
- -

[0, 1, 8, 125, 1000] dizisini döndürür.

- -

JavaScript'te bir fonksiyon, herhangi bir duruma bağlı olarak oluşturulabilir.Örneğin aşağıdaki fonksiyonda benimFonk fonksiyonu, sayı değeri sadece 0'a eşit olursa tanımlanır:

- -
var benimFonk;
-if (sayı === 0){
-  benimFonk = function(araba) {
-    araba.marka = "Toyota"
-  }
-}
- -

Burada tanımlanan fonksiyonlara ek olarak {{jsxref("Function")}} yapıcısını kullanarak da çalışma zamanında fonksiyon oluşmasını sağlanabilir. Örneğin {{jsxref("eval", "eval()")}} ifadesi gibi.

- -

Bir nesnenin özelliği olan fonksiyona metot adı verilir. Nesneler ve metotlar hakkında daha fazla bilgi için bkz: Nesneler ile çalışma.

- -

Fonksiyonları çağırma

- -

Bir fonksiyonu tanımlamakla o fonksiyon çalışmaz. Fonksiyonu tanımlamak kısaca, o fonksiyona bir isim vermek ve o fonkisyon çağırıldığında bizim için hangi eylemleri yapması gerektiğini belirtmektir. Fonksiyonu çağırmak, bu belirlenmiş eylemleri bizim o fonksiyona verdiğimiz parametrelerin de kullanılmasıyla gerçekleştirir.  Örneğin,  karesiniAl diye bir fonksiyon tanımladığınızda, o fonksiyonu aşağıdaki gibi çağırabilirsiniz:

- -
karesiniAl(5);
-
- -

Bu ifade, fonksiyona parametre olarak 5 sayısını yollayarak çağırır. Fonksiyon, tanımlanırken belirttiğimiz eylemleri yapar ve bize 25 değerini döndürür.

- -

Fonksiyonlar çağrıldıklarında bir alanda olmalıdılar, fakat fonksiyon bildirimi kaldırılabilir, örnekteki gibi:

- -
console.log(square(5));
-/* ... */
-function square(n) { return n * n }
-
- -

Bir fonksiyonun alanı, bildirilen işlevdir, veya tüm program üst seviyede bildirilmişse.

- -
-

Not:  Bu, yalnızca yukarıdaki sözdizimini (i.e. function benimFonk(){}) işlevini kullanarak işlevi tanımlarken çalışır. Aşağıdaki kod çalışmayacak. Yani, işlev kaldırma sadece işlev bildirimi ile çalışır ve işlev ifadesiyle çalışamaz.

-
- -
console.log(square); // square is hoisted with an initial value undefined.
-console.log(square(5)); // TypeError: square is not a function
-var square = function (n) {
-  return n * n;
-}
-
- -

Bir fonksiyonun argümanları karakter dizileri ve sayılarla sınırlı değildir. Tüm nesneleri bir fonksiyona aktarabilirsiniz. show_props() fonksiyonu (Working with objects bölümünde tanımlanmıştır.) nesneyi argüman olarak alan bir fonksiyon örneğidir.

- -

Bir fonksiyon kendini çağırabilir. Örneğin, burada faktöriyelleri yinelemeli olarak hesaplayan bir fonksiyon var.

- -
function factorial(n){
-  if ((n === 0) || (n === 1))
-    return 1;
-  else
-    return (n * factorial(n - 1));
-}
-
- -

Daha sonra bir ile beş arasındaki faktöriyelleri şu şekilde hesaplayabilirsiniz:

- -
var a, b, c, d, e;
-a = factorial(1); // a gets the value 1
-b = factorial(2); // b gets the value 2
-c = factorial(3); // c gets the value 6
-d = factorial(4); // d gets the value 24
-e = factorial(5); // e gets the value 120
-
- -

Fonksiyonları  çağırmanın başka yolları da var. Bir fonksiyonun dinamik olarak çağrılması gerektiği veya bir fonksiyonun argümanlarının sayısının değişebileceği veya fonksiyon çağrısının içeriğinin çalışma zamanında belirlenen belirli bir nesneye ayarlanması gerektiği durumlar vardır. Fonksiyonların kendileri nesneler olduğu ve bu nesnelerin sırasıyla yöntemleri olduğu anlaşılıyor (bkz. {{Jsxref ("Function")}} nesnesi). Bunlardan biri, {{jsxref ("Function.apply", "application ()")}} yöntemi, bu amaca ulaşmak için kullanılabilir.

- -

Fonksiyon Kapsamı

- -

Bir fonksiyon içinde tanımlanmış değişkenlere, fonksiyonun dışındaki herhangi bir yerden erişilemez, çünkü değişken sadece fonksiyon kapsamında tanımlanır. Bununla birlikte, bir fonksiyon tanımlandığı kapsamda tanımlanan tüm değişkenlere ve fonksiyonlara erişebilir. Başka bir deyişle, global kapsamda tanımlanan bir fonksiyon, global kapsamda tanımlanan tüm değişkenlere erişebilir. Başka bir fonksiyonun içinde tanımlanmış bir fonksiyon, ana fonksiyonunda tanımlanan tüm değişkenlere ve ana fonksiyonun erişebildiği herhangi bir değişkene de erişebilir.

- -
// The following variables are defined in the global scope
-var num1 = 20,
-    num2 = 3,
-    name = "Chamahk";
-
-// This function is defined in the global scope
-function multiply() {
-  return num1 * num2;
-}
-
-multiply(); // Returns 60
-
-// A nested function example
-function getScore () {
-  var num1 = 2,
-      num2 = 3;
-
-  function add() {
-    return name + " scored " + (num1 + num2);
-  }
-
-  return add();
-}
-
-getScore(); // Returns "Chamahk scored 5"
- -

Kapsam ve fonksiyon yığını

- -

Yineleme

- -

Bir fonksiyon kendisine başvurabilir ve kendisini arayabilir. Bir işlevin kendisine başvurması için üç yol vardır:

- -

 

- -
    -
  1. fonksiyonun adı
  2. -
  3. arguments.callee
  4. -
  5. -

    fonksiyona başvuran bir kapsam içi değişken  

    -
  6. -
- -
-
-
-

Örneğin, aşağıdaki işlev tanımını göz önünde bulundurun:

-
-
-
- -

 

- -
var foo = function bar() {
-   // statements go here
-};
-
- -

Fonksiyon gövdesinde aşağıdakilerden hepsi eşdeğerdir.

- -
    -
  1. bar()
  2. -
  3. arguments.callee()
  4. -
  5. foo()
  6. -
- -

Kendisini çağıran fonksiyona özyinelemeli fonksiyon denir. Bazı açılardan, özyineleme bir döngüye benzer. Her ikisi de aynı kodu birkaç kez uygular ve her ikisi de bir koşul gerektirir (bu, sonsuz bir döngüden kaçınmak veya daha doğrusu bu durumda sonsuz özyinelemeden kaçınmak için). Örneğin, aşağıdaki döngü:

- -
var x = 0;
-while (x < 10) { // "x < 10" is the loop condition
-   // do stuff
-   x++;
-}
-
- -

özyinelemeli bir fonksiyona ve bu fonksiyonun çağrısına dönüştürülebilir:

- -
function loop(x) {
-  if (x >= 10) // "x >= 10" is the exit condition (equivalent to "!(x < 10)")
-    return;
-  // do stuff
-  loop(x + 1); // the recursive call
-}
-loop(0);
-
- -

Ancak, bazı algoritmalar basit yinelemeli döngüler olamaz. Örneğin, bir ağaç yapısının tüm düğümlerinin (örneğin DOM) alınması özyineleme kullanılarak daha kolay yapılır:

- -
function walkTree(node) {
-  if (node == null) //
-    return;
-  // do something with node
-  for (var i = 0; i < node.childNodes.length; i++) {
-    walkTree(node.childNodes[i]);
-  }
-}
-
- -

Fonksiyon döngüsü ile karşılaştırıldığında, her özyinelemeli çağrının kendisi burada birçok özyinelemeli çağrı yapar.

- -

Herhangi bir özyinelemeli algoritmayı özyinelemeli olmayan bir algoritmaya dönüştürmek mümkündür, ancak çoğu zaman mantık çok daha karmaşıktır ve bunu yapmak bir yığının kullanılmasını gerektirir. Aslında, özyinelemenin kendisi bir yığın kullanır: Fonksiyon yığını.

- -

Yığın benzeri davranış aşağıdaki örnekte görülebilir:

- -
function foo(i) {
-  if (i < 0)
-    return;
-  console.log('begin:' + i);
-  foo(i - 1);
-  console.log('end:' + i);
-}
-foo(3);
-
-// Output:
-
-// begin:3
-// begin:2
-// begin:1
-// begin:0
-// end:0
-// end:1
-// end:2
-// end:3
- -

Nested functions and closures

- -

You can nest a function within a function. The nested (inner) function is private to its containing (outer) function. It also forms a closure. A closure is an expression (typically a function) that can have free variables together with an environment that binds those variables (that "closes" the expression).

- -

Since a nested function is a closure, this means that a nested function can "inherit" the arguments and variables of its containing function. In other words, the inner function contains the scope of the outer function.

- -

To summarize:

- - - - - -

The following example shows nested functions:

- -
function addSquares(a,b) {
-  function square(x) {
-    return x * x;
-  }
-  return square(a) + square(b);
-}
-a = addSquares(2,3); // returns 13
-b = addSquares(3,4); // returns 25
-c = addSquares(4,5); // returns 41
-
- -

Since the inner function forms a closure, you can call the outer function and specify arguments for both the outer and inner function:

- -
function outside(x) {
-  function inside(y) {
-    return x + y;
-  }
-  return inside;
-}
-fn_inside = outside(3); // Think of it like: give me a function that adds 3 to whatever you give it
-result = fn_inside(5); // returns 8
-
-result1 = outside(3)(5); // returns 8
-
- -

Preservation of variables

- -

Notice how x is preserved when inside is returned. A closure must preserve the arguments and variables in all scopes it references. Since each call provides potentially different arguments, a new closure is created for each call to outside. The memory can be freed only when the returned inside is no longer accessible.

- -

This is not different from storing references in other objects, but is often less obvious because one does not set the references directly and cannot inspect them.

- -

Multiply-nested functions

- -

Functions can be multiply-nested, i.e. a function (A) containing a function (B) containing a function (C). Both functions B and C form closures here, so B can access A and C can access B. In addition, since C can access B which can access A, C can also access A. Thus, the closures can contain multiple scopes; they recursively contain the scope of the functions containing it. This is called scope chaining. (Why it is called "chaining" will be explained later.)

- -

Consider the following example:

- -
function A(x) {
-  function B(y) {
-    function C(z) {
-      console.log(x + y + z);
-    }
-    C(3);
-  }
-  B(2);
-}
-A(1); // logs 6 (1 + 2 + 3)
-
- -

In this example, C accesses B's y and A's x. This can be done because:

- -
    -
  1. B forms a closure including A, i.e. B can access A's arguments and variables.
  2. -
  3. C forms a closure including B.
  4. -
  5. Because B's closure includes A, C's closure includes A, C can access both B and A's arguments and variables. In other words, C chains the scopes of B and A in that order.
  6. -
- -

The reverse, however, is not true. A cannot access C, because A cannot access any argument or variable of B, which C is a variable of. Thus, C remains private to only B.

- -

Name conflicts

- -

When two arguments or variables in the scopes of a closure have the same name, there is a name conflict. More inner scopes take precedence, so the inner-most scope takes the highest precedence, while the outer-most scope takes the lowest. This is the scope chain. The first on the chain is the inner-most scope, and the last is the outer-most scope. Consider the following:

- -
function outside() {
-  var x = 10;
-  function inside(x) {
-    return x;
-  }
-  return inside;
-}
-result = outside()(20); // returns 20 instead of 10
-
- -

The name conflict happens at the statement return x and is between inside's parameter x and outside's variable x. The scope chain here is {inside, outside, global object}. Therefore inside's x takes precedences over outside's x, and 20 (inside's x) is returned instead of 10 (outside's x).

- -

Closures

- -

Closures are one of the most powerful features of JavaScript. JavaScript allows for the nesting of functions and grants the inner function full access to all the variables and functions defined inside the outer function (and all other variables and functions that the outer function has access to). However, the outer function does not have access to the variables and functions defined inside the inner function. This provides a sort of security for the variables of the inner function. Also, since the inner function has access to the scope of the outer function, the variables and functions defined in the outer function will live longer than the outer function itself, if the inner function manages to survive beyond the life of the outer function. A closure is created when the inner function is somehow made available to any scope outside the outer function.

- -
var pet = function(name) {   // The outer function defines a variable called "name"
-  var getName = function() {
-    return name;             // The inner function has access to the "name" variable of the outer function
-  }
-  return getName;            // Return the inner function, thereby exposing it to outer scopes
-}
-myPet = pet("Vivie");
-
-myPet();                     // Returns "Vivie"
-
- -

It can be much more complex than the code above. An object containing methods for manipulating the inner variables of the outer function can be returned.

- -
var createPet = function(name) {
-  var sex;
-
-  return {
-    setName: function(newName) {
-      name = newName;
-    },
-
-    getName: function() {
-      return name;
-    },
-
-    getSex: function() {
-      return sex;
-    },
-
-    setSex: function(newSex) {
-      if(typeof newSex === "string" && (newSex.toLowerCase() === "male" || newSex.toLowerCase() === "female")) {
-        sex = newSex;
-      }
-    }
-  }
-}
-
-var pet = createPet("Vivie");
-pet.getName();                  // Vivie
-
-pet.setName("Oliver");
-pet.setSex("male");
-pet.getSex();                   // male
-pet.getName();                  // Oliver
-
- -

In the code above, the name variable of the outer function is accessible to the inner functions, and there is no other way to access the inner variables except through the inner functions. The inner variables of the inner functions act as safe stores for the outer arguments and variables. They hold "persistent", yet secure, data for the inner functions to work with. The functions do not even have to be assigned to a variable, or have a name.

- -
var getCode = (function(){
-  var secureCode = "0]Eal(eh&2";    // A code we do not want outsiders to be able to modify...
-
-  return function () {
-    return secureCode;
-  };
-})();
-
-getCode();    // Returns the secureCode
-
- -

There are, however, a number of pitfalls to watch out for when using closures. If an enclosed function defines a variable with the same name as the name of a variable in the outer scope, there is no way to refer to the variable in the outer scope again.

- -
var createPet = function(name) {  // Outer function defines a variable called "name"
-  return {
-    setName: function(name) {    // Enclosed function also defines a variable called "name"
-      name = name;               // ??? How do we access the "name" defined by the outer function ???
-    }
-  }
-}
-
- -

The magical this variable is very tricky in closures. They have to be used carefully, as what this refers to depends completely on where the function was called, rather than where it was defined.

- -

Using the arguments object

- -

The arguments of a function are maintained in an array-like object. Within a function, you can address the arguments passed to it as follows:

- -
arguments[i]
-
- -

where i is the ordinal number of the argument, starting at zero. So, the first argument passed to a function would be arguments[0]. The total number of arguments is indicated by arguments.length.

- -

Using the arguments object, you can call a function with more arguments than it is formally declared to accept. This is often useful if you don't know in advance how many arguments will be passed to the function. You can use arguments.length to determine the number of arguments actually passed to the function, and then access each argument using the arguments object.

- -

For example, consider a function that concatenates several strings. The only formal argument for the function is a string that specifies the characters that separate the items to concatenate. The function is defined as follows:

- -
function myConcat(separator) {
-   var result = ""; // initialize list
-   var i;
-   // iterate through arguments
-   for (i = 1; i < arguments.length; i++) {
-      result += arguments[i] + separator;
-   }
-   return result;
-}
-
- -

You can pass any number of arguments to this function, and it concatenates each argument into a string "list":

- -
// returns "red, orange, blue, "
-myConcat(", ", "red", "orange", "blue");
-
-// returns "elephant; giraffe; lion; cheetah; "
-myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
-
-// returns "sage. basil. oregano. pepper. parsley. "
-myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
-
- -
-

Note: The arguments variable is "array-like", but not an array. It is array-like in that is has a numbered index and a length property. However, it does not possess all of the array-manipulation methods.

-
- -

See the {{jsxref("Function")}} object in the JavaScript reference for more information.

- -

Function parameters

- -

Starting with ECMAScript 6, there are two new kinds of parameters: default parameters and rest parameters.

- -

Default parameters

- -

In JavaScript, parameters of functions default to undefined. However, in some situations it might be useful to set a different default value. This is where default parameters can help.

- -

In the past, the general strategy for setting defaults was to test parameter values in the body of the function and assign a value if they are undefined. If in the following example, no value is provided for b in the call, its value would be undefined  when evaluating a*b and the call to multiply would have returned NaN. However, this is caught with the second line in this example:

- -
function multiply(a, b) {
-  b = typeof b !== 'undefined' ?  b : 1;
-
-  return a*b;
-}
-
-multiply(5); // 5
-
- -

With default parameters, the check in the function body is no longer necessary. Now, you can simply put 1 as the default value for b in the function head:

- -
function multiply(a, b = 1) {
-  return a*b;
-}
-
-multiply(5); // 5
- -

Fore more details, see default parameters in the reference.

- -

Rest parameters

- -

The rest parameter syntax allows us to represent an indefinite number of arguments as an array. In the example, we use the rest parameters to collect arguments from the second one to the end. We then multiply them by the first one. This example is using an arrow function, which is introduced in the next section.

- -
function multiply(multiplier, ...theArgs) {
-  return theArgs.map(x => multiplier * x);
-}
-
-var arr = multiply(2, 1, 2, 3);
-console.log(arr); // [2, 4, 6]
- -

Arrow functions

- -

An arrow function expression (also known as fat arrow function) has a shorter syntax compared to function expressions and lexically binds the this value. Arrow functions are always anonymous. See also this hacks.mozilla.org blog post: "ES6 In Depth: Arrow functions".

- -

Two factors influenced the introduction of arrow functions: shorter functions and lexical this.

- -

Shorter functions

- -

In some functional patterns, shorter functions are welcome. Compare:

- -
var a = [
-  "Hydrogen",
-  "Helium",
-  "Lithium",
-  "Beryllium"
-];
-
-var a2 = a.map(function(s){ return s.length });
-
-console.log(a2); // logs [ 8, 6, 7, 9 ]
-
-var a3 = a.map( s => s.length );
-
-console.log(a3); // logs [ 8, 6, 7, 9 ]
-
- -

Lexical this

- -

Until arrow functions, every new function defined its own this value (a new object in case of a constructor, undefined in strict mode function calls, the context object if the function is called as an "object method", etc.). This proved to be annoying with an object-oriented style of programming.

- -
function Person() {
-  // The Person() constructor defines `this` as itself.
-  this.age = 0;
-
-  setInterval(function growUp() {
-    // In nonstrict mode, the growUp() function defines `this`
-    // as the global object, which is different from the `this`
-    // defined by the Person() constructor.
-    this.age++;
-  }, 1000);
-}
-
-var p = new Person();
- -

In ECMAScript 3/5, this issue was fixed by assigning the value in this to a variable that could be closed over.

- -
function Person() {
-  var self = this; // Some choose `that` instead of `self`.
-                   // Choose one and be consistent.
-  self.age = 0;
-
-  setInterval(function growUp() {
-    // The callback refers to the `self` variable of which
-    // the value is the expected object.
-    self.age++;
-  }, 1000);
-}
- -

Alternatively, a bound function could be created so that the proper this value would be passed to the growUp() function.

- -

Arrow functions capture the this value of the enclosing context, so the following code works as expected.

- -
function Person(){
-  this.age = 0;
-
-  setInterval(() => {
-    this.age++; // |this| properly refers to the person object
-  }, 1000);
-}
-
-var p = new Person();
- -

Predefined functions

- -

JavaScript has several top-level, built-in functions:

- -
-
{{jsxref("Global_Objects/eval", "eval()")}}
-
-

The eval() method evaluates JavaScript code represented as a string.

-
-
{{jsxref("Global_Objects/uneval", "uneval()")}} {{non-standard_inline}}
-
-

The uneval() method creates a string representation of the source code of an {{jsxref("Object")}}.

-
-
{{jsxref("Global_Objects/isFinite", "isFinite()")}}
-
-

The global isFinite() function determines whether the passed value is a finite number. If needed, the parameter is first converted to a number.

-
-
{{jsxref("Global_Objects/isNaN", "isNaN()")}}
-
-

The isNaN() function determines whether a value is {{jsxref("Global_Objects/NaN", "NaN")}} or not. Note: coercion inside the isNaN function has interesting rules; you may alternatively want to use {{jsxref("Number.isNaN()")}}, as defined in ECMAScript 6, or you can use typeof to determine if the value is Not-A-Number.

-
-
{{jsxref("Global_Objects/parseFloat", "parseFloat()")}}
-
-

The parseFloat() function parses a string argument and returns a floating point number.

-
-
{{jsxref("Global_Objects/parseInt", "parseInt()")}}
-
-

The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).

-
-
{{jsxref("Global_Objects/decodeURI", "decodeURI()")}}
-
-

The decodeURI() function decodes a Uniform Resource Identifier (URI) previously created by {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or by a similar routine.

-
-
{{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent()")}}
-
-

The decodeURIComponent() method decodes a Uniform Resource Identifier (URI) component previously created by {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} or by a similar routine.

-
-
{{jsxref("Global_Objects/encodeURI", "encodeURI()")}}
-
-

The encodeURI() method encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

-
-
{{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent()")}}
-
-

The encodeURIComponent() method encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

-
-
{{jsxref("Global_Objects/escape", "escape()")}} {{deprecated_inline}}
-
-

The deprecated escape() method computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} instead.

-
-
{{jsxref("Global_Objects/unescape", "unescape()")}} {{deprecated_inline}}
-
-

The deprecated unescape() method computes a new string in which hexadecimal escape sequences are replaced with the character that it represents. The escape sequences might be introduced by a function like {{jsxref("Global_Objects/escape", "escape")}}. Because unescape() is deprecated, use {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} or {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} instead.

-
-
- -

{{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}

diff --git a/files/tr/web/javascript/guide/functions/index.html b/files/tr/web/javascript/guide/functions/index.html new file mode 100644 index 0000000000..e688bd5dcb --- /dev/null +++ b/files/tr/web/javascript/guide/functions/index.html @@ -0,0 +1,662 @@ +--- +title: Fonksiyonlar +slug: Web/JavaScript/Guide/Fonksiyonlar +tags: + - Başlangıç seviyesi + - Fonksiyonlar + - Rehber +translation_of: Web/JavaScript/Guide/Functions +--- +
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}
+ +

Foksiyonlar, JavaScript'in en temel yapıtaşlarından biridir. Her bir fonksiyon, bir JavaScript işlemidir—herhangi bir görevi yerine getiren  veya değer hesaplayan bir ifade kümesini içerirler. Bir fonksiyonu kullanmak için, fonksiyonu çağıracağınız kısmın faaliyet gösterdiği alanda fonksiyonu tanımlıyor olmanız gerekmektedir.

+ +

Daha fazla bilgi için JavaScript fonksiyonları ile ilgili buradaki detaylı kaynağı inceleyebilirsiniz.

+ +

Fonksiyonların tanımlanması

+ +

Fonksiyon tanımlamaları

+ +

Bir fonksiyon tanımı (fonksiyon betimlemesi, veya fonksiyon ifadesi de denir)  function anahtar kelimesinden sonra aşağıdaki kısımları içerir:

+ + + +

Örneğin aşağıdaki kodda karesiniAl isimli basit bir fonksiyon tanımlanmıştır:

+ +
function karesiniAl(sayı) {
+  return sayı * sayı;
+}
+
+ +

karesiniAl fonksiyonu, sayı isminde tek bir parametre içerir. Tek bir ifade içeren fonksiyonda, sayı parametresinin kendisi ile çarpılıp geri döndürülmesi işlemi yapılmıştır. return ifadesi, fonksiyon tarafından döndürülen değeri belirler.

+ +
return sayı * sayı;
+
+ +

Sayı türünde olduğu gibi ilkel parametreler fonksiyonlara değer ile geçilirler; ilgili değer, fonksiyona parametre olarak geçildiğinde parametre değerinin fonksiyonda ayrı bir kopyası alınır, eğer fonksiyon içerisinde parametre değerinde değişik yapılırsa, bu değişiklik sadece kopyalanan değer üzerinde gerçekleşmiştir, fonksiyona geçilen asıl değer değişmez.

+ +

Eğer bir nesneyi ({{jsxref("Array")}} veya bir kullanıcı tanımlı nesne gibi ilkel olmayan değer) fonksiyona parametre olarak geçerseniz, nesne fonksiyon içerisinde kopyalanmadığı için nesne üzerinde yapılan değişiklikler fonksiyon dışında da korunur. Aşağıdaki örneği inceleyelim:

+ +
function arabamıDeğiştir(araba) {
+  araba.markası = "Toyota";
+}
+
+var arabam = {markası: "Honda", modeli: "Accord", yılı: 1998};
+var x, y;
+
+x = arabam.markası ; // "Honda" değerini getirir
+
+arabamıDeğiştir(arabam);
+y = arabam.markası; // "Toyota" değeri döndürülür
+                    // (markası özelliği fonksiyon tarafından değiştirilmiştir)
+
+ +

Fonksiyon ifadeleri

+ +

Yukarıdaki fonksiyon tanımlaması sözdizimsel olarak bir ifade olmasına rağmen, fonksiyonlar ayrıca bir fonksiyon ifadesi ile de oluşturulabilirler. Böyle bir fonksiyon anonim olabilir; bir isme sahip olmak zorunda değildir. Örnek olarak, matematikteki kare alma fonksiyonu aşağıdaki şekilde tanımlanabilir:

+ +
var karesiniAl = function(sayı) { return sayı * sayı };
+var x = karesiniAl(4) // x'in değeri 16 olur.
+ +

Fonksiyon ifadesi ile belirtilen fonksiyon adı, fonksiyonun içerisinde kendisini çağıracak şekilde kullanılabilir:

+ +
var faktoriyel = function fa(n) { return n < 2 ? 1 : n * fa(n-1) };
+
+console.log(faktoriyel(3));
+
+ +

Fonksiyon ifadeleri, bir fonksiyon diğer fonksiyona parametre olarak geçilirken oldukça elverişlidir. Aşağıdaki örnekte map fonksiyonu tanımlanmış ve ilk parametresinde başka bir fonksiyonu parametre olarak almıştır:

+ +
function map(f,d) {
+  var sonuç = [], // Yeni bir dizi
+      i;
+  for (i = 0; i != d.length; i++)
+    sonuç[i] = f(d[i]);
+  return sonuç;
+}
+
+ +

Aşağıdaki kodda kullanımı mevcuttur:

+ +
var çarpım = function(x) {return x * x * x}; // Fonksiyon ifadesi.
+map(çarpım, [0, 1, 2, 5, 10]);
+
+ +

[0, 1, 8, 125, 1000] dizisini döndürür.

+ +

JavaScript'te bir fonksiyon, herhangi bir duruma bağlı olarak oluşturulabilir.Örneğin aşağıdaki fonksiyonda benimFonk fonksiyonu, sayı değeri sadece 0'a eşit olursa tanımlanır:

+ +
var benimFonk;
+if (sayı === 0){
+  benimFonk = function(araba) {
+    araba.marka = "Toyota"
+  }
+}
+ +

Burada tanımlanan fonksiyonlara ek olarak {{jsxref("Function")}} yapıcısını kullanarak da çalışma zamanında fonksiyon oluşmasını sağlanabilir. Örneğin {{jsxref("eval", "eval()")}} ifadesi gibi.

+ +

Bir nesnenin özelliği olan fonksiyona metot adı verilir. Nesneler ve metotlar hakkında daha fazla bilgi için bkz: Nesneler ile çalışma.

+ +

Fonksiyonları çağırma

+ +

Bir fonksiyonu tanımlamakla o fonksiyon çalışmaz. Fonksiyonu tanımlamak kısaca, o fonksiyona bir isim vermek ve o fonkisyon çağırıldığında bizim için hangi eylemleri yapması gerektiğini belirtmektir. Fonksiyonu çağırmak, bu belirlenmiş eylemleri bizim o fonksiyona verdiğimiz parametrelerin de kullanılmasıyla gerçekleştirir.  Örneğin,  karesiniAl diye bir fonksiyon tanımladığınızda, o fonksiyonu aşağıdaki gibi çağırabilirsiniz:

+ +
karesiniAl(5);
+
+ +

Bu ifade, fonksiyona parametre olarak 5 sayısını yollayarak çağırır. Fonksiyon, tanımlanırken belirttiğimiz eylemleri yapar ve bize 25 değerini döndürür.

+ +

Fonksiyonlar çağrıldıklarında bir alanda olmalıdılar, fakat fonksiyon bildirimi kaldırılabilir, örnekteki gibi:

+ +
console.log(square(5));
+/* ... */
+function square(n) { return n * n }
+
+ +

Bir fonksiyonun alanı, bildirilen işlevdir, veya tüm program üst seviyede bildirilmişse.

+ +
+

Not:  Bu, yalnızca yukarıdaki sözdizimini (i.e. function benimFonk(){}) işlevini kullanarak işlevi tanımlarken çalışır. Aşağıdaki kod çalışmayacak. Yani, işlev kaldırma sadece işlev bildirimi ile çalışır ve işlev ifadesiyle çalışamaz.

+
+ +
console.log(square); // square is hoisted with an initial value undefined.
+console.log(square(5)); // TypeError: square is not a function
+var square = function (n) {
+  return n * n;
+}
+
+ +

Bir fonksiyonun argümanları karakter dizileri ve sayılarla sınırlı değildir. Tüm nesneleri bir fonksiyona aktarabilirsiniz. show_props() fonksiyonu (Working with objects bölümünde tanımlanmıştır.) nesneyi argüman olarak alan bir fonksiyon örneğidir.

+ +

Bir fonksiyon kendini çağırabilir. Örneğin, burada faktöriyelleri yinelemeli olarak hesaplayan bir fonksiyon var.

+ +
function factorial(n){
+  if ((n === 0) || (n === 1))
+    return 1;
+  else
+    return (n * factorial(n - 1));
+}
+
+ +

Daha sonra bir ile beş arasındaki faktöriyelleri şu şekilde hesaplayabilirsiniz:

+ +
var a, b, c, d, e;
+a = factorial(1); // a gets the value 1
+b = factorial(2); // b gets the value 2
+c = factorial(3); // c gets the value 6
+d = factorial(4); // d gets the value 24
+e = factorial(5); // e gets the value 120
+
+ +

Fonksiyonları  çağırmanın başka yolları da var. Bir fonksiyonun dinamik olarak çağrılması gerektiği veya bir fonksiyonun argümanlarının sayısının değişebileceği veya fonksiyon çağrısının içeriğinin çalışma zamanında belirlenen belirli bir nesneye ayarlanması gerektiği durumlar vardır. Fonksiyonların kendileri nesneler olduğu ve bu nesnelerin sırasıyla yöntemleri olduğu anlaşılıyor (bkz. {{Jsxref ("Function")}} nesnesi). Bunlardan biri, {{jsxref ("Function.apply", "application ()")}} yöntemi, bu amaca ulaşmak için kullanılabilir.

+ +

Fonksiyon Kapsamı

+ +

Bir fonksiyon içinde tanımlanmış değişkenlere, fonksiyonun dışındaki herhangi bir yerden erişilemez, çünkü değişken sadece fonksiyon kapsamında tanımlanır. Bununla birlikte, bir fonksiyon tanımlandığı kapsamda tanımlanan tüm değişkenlere ve fonksiyonlara erişebilir. Başka bir deyişle, global kapsamda tanımlanan bir fonksiyon, global kapsamda tanımlanan tüm değişkenlere erişebilir. Başka bir fonksiyonun içinde tanımlanmış bir fonksiyon, ana fonksiyonunda tanımlanan tüm değişkenlere ve ana fonksiyonun erişebildiği herhangi bir değişkene de erişebilir.

+ +
// The following variables are defined in the global scope
+var num1 = 20,
+    num2 = 3,
+    name = "Chamahk";
+
+// This function is defined in the global scope
+function multiply() {
+  return num1 * num2;
+}
+
+multiply(); // Returns 60
+
+// A nested function example
+function getScore () {
+  var num1 = 2,
+      num2 = 3;
+
+  function add() {
+    return name + " scored " + (num1 + num2);
+  }
+
+  return add();
+}
+
+getScore(); // Returns "Chamahk scored 5"
+ +

Kapsam ve fonksiyon yığını

+ +

Yineleme

+ +

Bir fonksiyon kendisine başvurabilir ve kendisini arayabilir. Bir işlevin kendisine başvurması için üç yol vardır:

+ +

 

+ +
    +
  1. fonksiyonun adı
  2. +
  3. arguments.callee
  4. +
  5. +

    fonksiyona başvuran bir kapsam içi değişken  

    +
  6. +
+ +
+
+
+

Örneğin, aşağıdaki işlev tanımını göz önünde bulundurun:

+
+
+
+ +

 

+ +
var foo = function bar() {
+   // statements go here
+};
+
+ +

Fonksiyon gövdesinde aşağıdakilerden hepsi eşdeğerdir.

+ +
    +
  1. bar()
  2. +
  3. arguments.callee()
  4. +
  5. foo()
  6. +
+ +

Kendisini çağıran fonksiyona özyinelemeli fonksiyon denir. Bazı açılardan, özyineleme bir döngüye benzer. Her ikisi de aynı kodu birkaç kez uygular ve her ikisi de bir koşul gerektirir (bu, sonsuz bir döngüden kaçınmak veya daha doğrusu bu durumda sonsuz özyinelemeden kaçınmak için). Örneğin, aşağıdaki döngü:

+ +
var x = 0;
+while (x < 10) { // "x < 10" is the loop condition
+   // do stuff
+   x++;
+}
+
+ +

özyinelemeli bir fonksiyona ve bu fonksiyonun çağrısına dönüştürülebilir:

+ +
function loop(x) {
+  if (x >= 10) // "x >= 10" is the exit condition (equivalent to "!(x < 10)")
+    return;
+  // do stuff
+  loop(x + 1); // the recursive call
+}
+loop(0);
+
+ +

Ancak, bazı algoritmalar basit yinelemeli döngüler olamaz. Örneğin, bir ağaç yapısının tüm düğümlerinin (örneğin DOM) alınması özyineleme kullanılarak daha kolay yapılır:

+ +
function walkTree(node) {
+  if (node == null) //
+    return;
+  // do something with node
+  for (var i = 0; i < node.childNodes.length; i++) {
+    walkTree(node.childNodes[i]);
+  }
+}
+
+ +

Fonksiyon döngüsü ile karşılaştırıldığında, her özyinelemeli çağrının kendisi burada birçok özyinelemeli çağrı yapar.

+ +

Herhangi bir özyinelemeli algoritmayı özyinelemeli olmayan bir algoritmaya dönüştürmek mümkündür, ancak çoğu zaman mantık çok daha karmaşıktır ve bunu yapmak bir yığının kullanılmasını gerektirir. Aslında, özyinelemenin kendisi bir yığın kullanır: Fonksiyon yığını.

+ +

Yığın benzeri davranış aşağıdaki örnekte görülebilir:

+ +
function foo(i) {
+  if (i < 0)
+    return;
+  console.log('begin:' + i);
+  foo(i - 1);
+  console.log('end:' + i);
+}
+foo(3);
+
+// Output:
+
+// begin:3
+// begin:2
+// begin:1
+// begin:0
+// end:0
+// end:1
+// end:2
+// end:3
+ +

Nested functions and closures

+ +

You can nest a function within a function. The nested (inner) function is private to its containing (outer) function. It also forms a closure. A closure is an expression (typically a function) that can have free variables together with an environment that binds those variables (that "closes" the expression).

+ +

Since a nested function is a closure, this means that a nested function can "inherit" the arguments and variables of its containing function. In other words, the inner function contains the scope of the outer function.

+ +

To summarize:

+ + + + + +

The following example shows nested functions:

+ +
function addSquares(a,b) {
+  function square(x) {
+    return x * x;
+  }
+  return square(a) + square(b);
+}
+a = addSquares(2,3); // returns 13
+b = addSquares(3,4); // returns 25
+c = addSquares(4,5); // returns 41
+
+ +

Since the inner function forms a closure, you can call the outer function and specify arguments for both the outer and inner function:

+ +
function outside(x) {
+  function inside(y) {
+    return x + y;
+  }
+  return inside;
+}
+fn_inside = outside(3); // Think of it like: give me a function that adds 3 to whatever you give it
+result = fn_inside(5); // returns 8
+
+result1 = outside(3)(5); // returns 8
+
+ +

Preservation of variables

+ +

Notice how x is preserved when inside is returned. A closure must preserve the arguments and variables in all scopes it references. Since each call provides potentially different arguments, a new closure is created for each call to outside. The memory can be freed only when the returned inside is no longer accessible.

+ +

This is not different from storing references in other objects, but is often less obvious because one does not set the references directly and cannot inspect them.

+ +

Multiply-nested functions

+ +

Functions can be multiply-nested, i.e. a function (A) containing a function (B) containing a function (C). Both functions B and C form closures here, so B can access A and C can access B. In addition, since C can access B which can access A, C can also access A. Thus, the closures can contain multiple scopes; they recursively contain the scope of the functions containing it. This is called scope chaining. (Why it is called "chaining" will be explained later.)

+ +

Consider the following example:

+ +
function A(x) {
+  function B(y) {
+    function C(z) {
+      console.log(x + y + z);
+    }
+    C(3);
+  }
+  B(2);
+}
+A(1); // logs 6 (1 + 2 + 3)
+
+ +

In this example, C accesses B's y and A's x. This can be done because:

+ +
    +
  1. B forms a closure including A, i.e. B can access A's arguments and variables.
  2. +
  3. C forms a closure including B.
  4. +
  5. Because B's closure includes A, C's closure includes A, C can access both B and A's arguments and variables. In other words, C chains the scopes of B and A in that order.
  6. +
+ +

The reverse, however, is not true. A cannot access C, because A cannot access any argument or variable of B, which C is a variable of. Thus, C remains private to only B.

+ +

Name conflicts

+ +

When two arguments or variables in the scopes of a closure have the same name, there is a name conflict. More inner scopes take precedence, so the inner-most scope takes the highest precedence, while the outer-most scope takes the lowest. This is the scope chain. The first on the chain is the inner-most scope, and the last is the outer-most scope. Consider the following:

+ +
function outside() {
+  var x = 10;
+  function inside(x) {
+    return x;
+  }
+  return inside;
+}
+result = outside()(20); // returns 20 instead of 10
+
+ +

The name conflict happens at the statement return x and is between inside's parameter x and outside's variable x. The scope chain here is {inside, outside, global object}. Therefore inside's x takes precedences over outside's x, and 20 (inside's x) is returned instead of 10 (outside's x).

+ +

Closures

+ +

Closures are one of the most powerful features of JavaScript. JavaScript allows for the nesting of functions and grants the inner function full access to all the variables and functions defined inside the outer function (and all other variables and functions that the outer function has access to). However, the outer function does not have access to the variables and functions defined inside the inner function. This provides a sort of security for the variables of the inner function. Also, since the inner function has access to the scope of the outer function, the variables and functions defined in the outer function will live longer than the outer function itself, if the inner function manages to survive beyond the life of the outer function. A closure is created when the inner function is somehow made available to any scope outside the outer function.

+ +
var pet = function(name) {   // The outer function defines a variable called "name"
+  var getName = function() {
+    return name;             // The inner function has access to the "name" variable of the outer function
+  }
+  return getName;            // Return the inner function, thereby exposing it to outer scopes
+}
+myPet = pet("Vivie");
+
+myPet();                     // Returns "Vivie"
+
+ +

It can be much more complex than the code above. An object containing methods for manipulating the inner variables of the outer function can be returned.

+ +
var createPet = function(name) {
+  var sex;
+
+  return {
+    setName: function(newName) {
+      name = newName;
+    },
+
+    getName: function() {
+      return name;
+    },
+
+    getSex: function() {
+      return sex;
+    },
+
+    setSex: function(newSex) {
+      if(typeof newSex === "string" && (newSex.toLowerCase() === "male" || newSex.toLowerCase() === "female")) {
+        sex = newSex;
+      }
+    }
+  }
+}
+
+var pet = createPet("Vivie");
+pet.getName();                  // Vivie
+
+pet.setName("Oliver");
+pet.setSex("male");
+pet.getSex();                   // male
+pet.getName();                  // Oliver
+
+ +

In the code above, the name variable of the outer function is accessible to the inner functions, and there is no other way to access the inner variables except through the inner functions. The inner variables of the inner functions act as safe stores for the outer arguments and variables. They hold "persistent", yet secure, data for the inner functions to work with. The functions do not even have to be assigned to a variable, or have a name.

+ +
var getCode = (function(){
+  var secureCode = "0]Eal(eh&2";    // A code we do not want outsiders to be able to modify...
+
+  return function () {
+    return secureCode;
+  };
+})();
+
+getCode();    // Returns the secureCode
+
+ +

There are, however, a number of pitfalls to watch out for when using closures. If an enclosed function defines a variable with the same name as the name of a variable in the outer scope, there is no way to refer to the variable in the outer scope again.

+ +
var createPet = function(name) {  // Outer function defines a variable called "name"
+  return {
+    setName: function(name) {    // Enclosed function also defines a variable called "name"
+      name = name;               // ??? How do we access the "name" defined by the outer function ???
+    }
+  }
+}
+
+ +

The magical this variable is very tricky in closures. They have to be used carefully, as what this refers to depends completely on where the function was called, rather than where it was defined.

+ +

Using the arguments object

+ +

The arguments of a function are maintained in an array-like object. Within a function, you can address the arguments passed to it as follows:

+ +
arguments[i]
+
+ +

where i is the ordinal number of the argument, starting at zero. So, the first argument passed to a function would be arguments[0]. The total number of arguments is indicated by arguments.length.

+ +

Using the arguments object, you can call a function with more arguments than it is formally declared to accept. This is often useful if you don't know in advance how many arguments will be passed to the function. You can use arguments.length to determine the number of arguments actually passed to the function, and then access each argument using the arguments object.

+ +

For example, consider a function that concatenates several strings. The only formal argument for the function is a string that specifies the characters that separate the items to concatenate. The function is defined as follows:

+ +
function myConcat(separator) {
+   var result = ""; // initialize list
+   var i;
+   // iterate through arguments
+   for (i = 1; i < arguments.length; i++) {
+      result += arguments[i] + separator;
+   }
+   return result;
+}
+
+ +

You can pass any number of arguments to this function, and it concatenates each argument into a string "list":

+ +
// returns "red, orange, blue, "
+myConcat(", ", "red", "orange", "blue");
+
+// returns "elephant; giraffe; lion; cheetah; "
+myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
+
+// returns "sage. basil. oregano. pepper. parsley. "
+myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
+
+ +
+

Note: The arguments variable is "array-like", but not an array. It is array-like in that is has a numbered index and a length property. However, it does not possess all of the array-manipulation methods.

+
+ +

See the {{jsxref("Function")}} object in the JavaScript reference for more information.

+ +

Function parameters

+ +

Starting with ECMAScript 6, there are two new kinds of parameters: default parameters and rest parameters.

+ +

Default parameters

+ +

In JavaScript, parameters of functions default to undefined. However, in some situations it might be useful to set a different default value. This is where default parameters can help.

+ +

In the past, the general strategy for setting defaults was to test parameter values in the body of the function and assign a value if they are undefined. If in the following example, no value is provided for b in the call, its value would be undefined  when evaluating a*b and the call to multiply would have returned NaN. However, this is caught with the second line in this example:

+ +
function multiply(a, b) {
+  b = typeof b !== 'undefined' ?  b : 1;
+
+  return a*b;
+}
+
+multiply(5); // 5
+
+ +

With default parameters, the check in the function body is no longer necessary. Now, you can simply put 1 as the default value for b in the function head:

+ +
function multiply(a, b = 1) {
+  return a*b;
+}
+
+multiply(5); // 5
+ +

Fore more details, see default parameters in the reference.

+ +

Rest parameters

+ +

The rest parameter syntax allows us to represent an indefinite number of arguments as an array. In the example, we use the rest parameters to collect arguments from the second one to the end. We then multiply them by the first one. This example is using an arrow function, which is introduced in the next section.

+ +
function multiply(multiplier, ...theArgs) {
+  return theArgs.map(x => multiplier * x);
+}
+
+var arr = multiply(2, 1, 2, 3);
+console.log(arr); // [2, 4, 6]
+ +

Arrow functions

+ +

An arrow function expression (also known as fat arrow function) has a shorter syntax compared to function expressions and lexically binds the this value. Arrow functions are always anonymous. See also this hacks.mozilla.org blog post: "ES6 In Depth: Arrow functions".

+ +

Two factors influenced the introduction of arrow functions: shorter functions and lexical this.

+ +

Shorter functions

+ +

In some functional patterns, shorter functions are welcome. Compare:

+ +
var a = [
+  "Hydrogen",
+  "Helium",
+  "Lithium",
+  "Beryllium"
+];
+
+var a2 = a.map(function(s){ return s.length });
+
+console.log(a2); // logs [ 8, 6, 7, 9 ]
+
+var a3 = a.map( s => s.length );
+
+console.log(a3); // logs [ 8, 6, 7, 9 ]
+
+ +

Lexical this

+ +

Until arrow functions, every new function defined its own this value (a new object in case of a constructor, undefined in strict mode function calls, the context object if the function is called as an "object method", etc.). This proved to be annoying with an object-oriented style of programming.

+ +
function Person() {
+  // The Person() constructor defines `this` as itself.
+  this.age = 0;
+
+  setInterval(function growUp() {
+    // In nonstrict mode, the growUp() function defines `this`
+    // as the global object, which is different from the `this`
+    // defined by the Person() constructor.
+    this.age++;
+  }, 1000);
+}
+
+var p = new Person();
+ +

In ECMAScript 3/5, this issue was fixed by assigning the value in this to a variable that could be closed over.

+ +
function Person() {
+  var self = this; // Some choose `that` instead of `self`.
+                   // Choose one and be consistent.
+  self.age = 0;
+
+  setInterval(function growUp() {
+    // The callback refers to the `self` variable of which
+    // the value is the expected object.
+    self.age++;
+  }, 1000);
+}
+ +

Alternatively, a bound function could be created so that the proper this value would be passed to the growUp() function.

+ +

Arrow functions capture the this value of the enclosing context, so the following code works as expected.

+ +
function Person(){
+  this.age = 0;
+
+  setInterval(() => {
+    this.age++; // |this| properly refers to the person object
+  }, 1000);
+}
+
+var p = new Person();
+ +

Predefined functions

+ +

JavaScript has several top-level, built-in functions:

+ +
+
{{jsxref("Global_Objects/eval", "eval()")}}
+
+

The eval() method evaluates JavaScript code represented as a string.

+
+
{{jsxref("Global_Objects/uneval", "uneval()")}} {{non-standard_inline}}
+
+

The uneval() method creates a string representation of the source code of an {{jsxref("Object")}}.

+
+
{{jsxref("Global_Objects/isFinite", "isFinite()")}}
+
+

The global isFinite() function determines whether the passed value is a finite number. If needed, the parameter is first converted to a number.

+
+
{{jsxref("Global_Objects/isNaN", "isNaN()")}}
+
+

The isNaN() function determines whether a value is {{jsxref("Global_Objects/NaN", "NaN")}} or not. Note: coercion inside the isNaN function has interesting rules; you may alternatively want to use {{jsxref("Number.isNaN()")}}, as defined in ECMAScript 6, or you can use typeof to determine if the value is Not-A-Number.

+
+
{{jsxref("Global_Objects/parseFloat", "parseFloat()")}}
+
+

The parseFloat() function parses a string argument and returns a floating point number.

+
+
{{jsxref("Global_Objects/parseInt", "parseInt()")}}
+
+

The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).

+
+
{{jsxref("Global_Objects/decodeURI", "decodeURI()")}}
+
+

The decodeURI() function decodes a Uniform Resource Identifier (URI) previously created by {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or by a similar routine.

+
+
{{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent()")}}
+
+

The decodeURIComponent() method decodes a Uniform Resource Identifier (URI) component previously created by {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} or by a similar routine.

+
+
{{jsxref("Global_Objects/encodeURI", "encodeURI()")}}
+
+

The encodeURI() method encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

+
+
{{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent()")}}
+
+

The encodeURIComponent() method encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two "surrogate" characters).

+
+
{{jsxref("Global_Objects/escape", "escape()")}} {{deprecated_inline}}
+
+

The deprecated escape() method computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use {{jsxref("Global_Objects/encodeURI", "encodeURI")}} or {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent")}} instead.

+
+
{{jsxref("Global_Objects/unescape", "unescape()")}} {{deprecated_inline}}
+
+

The deprecated unescape() method computes a new string in which hexadecimal escape sequences are replaced with the character that it represents. The escape sequences might be introduced by a function like {{jsxref("Global_Objects/escape", "escape")}}. Because unescape() is deprecated, use {{jsxref("Global_Objects/decodeURI", "decodeURI()")}} or {{jsxref("Global_Objects/decodeURIComponent", "decodeURIComponent")}} instead.

+
+
+ +

{{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}

diff --git a/files/tr/web/javascript/guide/ifadeler/index.html b/files/tr/web/javascript/guide/ifadeler/index.html deleted file mode 100644 index dcf6d13466..0000000000 --- a/files/tr/web/javascript/guide/ifadeler/index.html +++ /dev/null @@ -1,419 +0,0 @@ ---- -title: Kontrol akışı ve hata yakalama -slug: Web/JavaScript/Guide/Ifadeler -tags: - - Başlangıç - - JavaScript - - Rehberi -translation_of: Web/JavaScript/Guide/Control_flow_and_error_handling ---- -
{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Grammar_and_types", "Web/JavaScript/Guide/Loops_and_iteration")}}
- -

JavaScript, uygulamanızın etkilişim halinde olmasını sağlayan kontrol akışı ifadeleri gibi birçok ifadeyi destekler. Bu bölümde, bu ifadeler üzerine durulacaktır.

- -

En basit olarak anlatmak gerekirse, JavaScript tarafından çalıştırılacak her komuta ifade adı verilir. Noktalı virgül (;) karakteri ise, JavaScript kodundaki ifadelerin birbirinden ayrılması için kullanılmaktadır.

- -

Blok ifadesi

- -

En temel ifade türü, ifadelerin gruplanmasını sağlayan blok ifadesidir. Blok ifadesi,  bir çift süslü parantezle sınırlandırılır:

- -
{ ifade_1; ifade_2; . . . ifade_n; }
-
- -

Örnek

- -

Blok ifadeleri genellikle kontrol akışı ifadeleri ile birlikte kullanılır (örn: if, for, while).

- -
while (x < 10) {
-  x++;
-}
-
- -

Buradaki, { x++; } bir blok ifadesidir.

- -

Önemli: ECMAScript2015'ten önceki JavaScript'te blok etki alanı bulunmamaktadır. Blok içerisinde yer alan değişkenlerin etki alanı, onları içeren fonksiyon veya .js dosyası kadar geniş bir alanı kapsar, ve bu değişkenler üzerinde yapılan değişiklikler bloğun ötesinde de kalıcılık gösterir. Başka bir deyişle blok ifadeleri, değişkenler için bir etki alanı oluşturmazlar. C ve Java dilinden aşina olduğunuz değişkenden bağımsız blok ifadeleri, JavaScript'te tamamıyla farklı bir davranış sergileyebilirler. Aşağıdaki örneği inceleyelim:

- -
var x = 1;
-{
-  var x = 2;
-}
-console.log(x); // Ekrandaki çıktı: 2
-
- -

Kodun çıktısı 2 olacaktır. Çünkü blok içerisindeki var x ifadesi  ile bloktan önce gelen var x ifadesi aynı etki alanı içerisindedir. Eğer üstteki kod C veya Java dilinde olsaydı, ekrandaki çıktı 1 olacaktı.

- -

ECMAScript 6 ile birlikte gelen let tanımıyla oluşturulan değişkenler, blok seviyesinde etki alanına sahiptir. Daha fazla bilgi için {{jsxref("Statements/let", "let")}} sayfasına bakınız.

- -

Koşullu ifadeler

- -

Belirli bir koşul sağlandığında çalışacak komutlar kümesine koşullu ifade denilir. JavaScript, iki adet koşullu ifadeyi destekler: if...else ve switch.

- -

if...else ifadesi

- -

Belirli bir mantıksal durum sağlandığında bir ifadenin çalıştırılması için if ifadesi kullanılır. Mantıksal durum sağlanmadığında çalıştırılacak komutlar için ise else kelimesi kullanıılabilir. Bir if ifadesi aşağıdaki şekilde oluşturulur:

- -
if (mantıksal_durum) {
-  ifade_1;
-} else {
-  ifade_2;
-}
- -

mantıksal_durum, true veya false değerler alabilen herhangi bir ifade olabilir. Eğer mantıksal_durum, true olursa ifade_1 çalışacak; aksi halde, ifade_2 is çalışacaktır. ifade_1 ve ifade_2 ifadeleri, çalıştırılacak herhangi bir ifade olabilir.

- -

Birçok mantıksal durumun kontrolünün bütün bir halde yapılabilmesi için aşağıdaki şekilde else if tanımlamalarını kullanabilirsiniz.

- -
if (mantıksal_durum_1) {
-  ifade_1;
-} else if (mantıksal_durum_2) {
-  ifade_2;
-} else if (mantıksal_durum_n) {
-  ifade_n;
-} else {
-  ifade_son;
-}
-
- -

Üstteki gibi çoklu mantıksal durumların olduğu ifadelerde,  yalnızca true olan ilk mantıksal durum çalıştırılır, ilişkili diğer kontrol ifadeleri çalıştırılmaz. Birçok ifadenin çalıştırılması için ifadeler, blok ifadesi ({ ... }) içerisinde gruplandırılır. Özellikle iç içe if ifadelerinin olduğu durumlar başta olmak üzere blok ifadeleri, geliştiriciler arasında yaygın olarak kullanılmaktadır:

- -
if (mantıksal_durum) {
-  eğer_durum_true_ise_çalışacak_ifade_1;
-  eğer_durum_true_ise_çalışacak_ifade_2;
-} else {
-  eğer_durum_false_ise_çalışacak_ifade_3;
-  eğer_durum_false_ise_çalışacak_ifade_4;
-}
-
- -
mantıksal_durum kısmında herhangi bir değişkene değer atamak yanlış bir kullanımdır, çünkü kodunuza sizden sonra bakan biri atama işlemini ilk bakışta eşitlik olarak görebilir. Örneğin aşağıdaki şekilde bir kullanım yanlıştır:
- -
- -
if (x = y) {
-  /* diğer ifadeler */
-}
-
- -

Eğer mantıksal_durum kısmında gerçekten atama yapmanız gerekiyorsa, bunu yapmanın en iyi yolu atama ifadesini parantezler içerisine almaktır. Örneğin:

- -
if ((x = y)) {
-  /* diğer ifadeler */
-}
-
- -

Yanlışımsı (falsy) değerler

- -

Aşağıdaki değerler JavaScript tarafından false olarak değerlendirilir ve ({{Glossary("Falsy")}} değerler olarak bilinir):

- - - -

Mantıksal durum içerisine alınan diğer bütün değerler ve nesneler, JavaScript tarafından true olarak değerlendirilir.

- -

{{jsxref("Boolean")}} nesnesindeki true ve false ile ilkel tipteki true ve false değerlerini karıştırmayınız. Örneğin:

- -
var b = new Boolean(false);
-if (b) // bu ifade true olarak değerlendirilir
-
- -

Örnek

- -

Aşağıdaki örnekte bulunan checkData fonksiyonu, HTML dokümanındaki formda yer alan ikiKarakter isimli girdi nesnesine ait değerin, karakter sayısı 2 ise true döndürülür, değilse ekrana bir uyarı metni basılır ve false döndürülür:

- -
function checkData() {
-  if (document.form1.ikiKarakter.value.length == 2) {
-    return true;
-  } else {
-    alert("Tam olarak iki karakter giriniz. " +
-    document.form1.ikiKarakter.value + " geçersizdir.");
-    return false;
-  }
-}
-
- -

switch ifadesi

- -

Bir switch ifadesine, mantıksal bir ifade verilir ve bu ifade ile eşleşen bir etiket varsa, etiketi içeren case ifadesi çalıştırılır, yoksa varsayılan ifade (default) çalıştırılır. Örnek:

- -
switch (mantıksal_ifade) {
-  case etiket_1:
-    ifadeler_1
-    [break;]
-  case etiket_2:
-    ifadeler_2
-    [break;]
-    ...
-  default:
-    varsayılan_ifadeler
-    [break;]
-}
-
- -

Üstteki kodu çalıştırırken JavaScript, mantıksal_ifade ile eşleşen etikete sahip case cümleciğini arar ve ilişkili ifadeleri çalıştırır. Eğer eşleşen hiçbir etiket bulunamadıysa, default cümleciğinin olup olmadığına bakar, varsa ve ilgili varsayılan ifadeleri çalıştırır. Eğer default cümleciği de yoksa, switch bloğundan çıkılır.  default cümleciğinin sırası önemli olmamakla birlikte, genel kullanımlarda hep en sonda yer almaktadır.

- -

Her case cümleciğinde, isteğe bağlı olarak konulan break ifadesi,  eşleşen ifadenin çalıştırılıp tamamlandıktan sonra switch bloğundan çıkmayı sağlar. Eğer break ifadesi yazılmazsa, program switch ifadesi içerisindeki bir sonraki case ifadesini çalıştırarak yoluna devam eder. 

- -

Örnek

- -

Aşağıdaki örnekte, meyve ifadesinin değeri "Muz" ise,  program "Muz" değeri ile eşleşen case "Muz" ifadesini çalıştırır. break ile karşılaşıldığında, program switch bloğundan çıkar ve switch bloğundan sonraki kodları çalıştırır. Eğer break ifadesi olmasaydı, "Muz" ile alakasız olan, case "Kiraz" ifadesi de çalıştırılacaktı.

- -
switch (meyve) {
-  case "Portakal":
-    console.log("Portakalların kilosu ₺1.99 lira.");
-    break;
-  case "Elma":
-    console.log("Elmaların kilosu ₺1.49 lira.");
-    break;
-  case "Muz":
-    console.log("Muzların kilosu ₺2.49 lira.");
-    break;
-  case "Kiraz":
-    console.log("Kirazların kilosu ₺2.19 lira.");
-    break;
-  case "Çilek":
-    console.log("Çileklerin kilosu ₺2.49 lira.");
-    break;
-  case "Avokado":
-    console.log("Avokadoların kilosu ₺5.99 lira.");
-    break;
-  default:
-   console.log("Maalesef elimizde hiç " + meyve + " kalmadı.");
-}
-console.log("Başka bir şey lazım mı?");
- -

Exception (Hata) yakalama ifadeleri

- -

throw ifadesi ile exception fırlatabilir, try...catch ifadeleri kullanarak hata yakalama işlemlerinizi yürütebilirsiniz.

- - - -

Exception türleri

- -

JavaScript'te neredeyse her nesne fırlatılabilir. Buna rağmen fırlatılacak türdeki nesnelerin hepsi aynı şekilde oluşturulmamışlardır. Sayı ve string değerlerinin hata olarak fırlatılması oldukça yaygın olmasına rağmen, bu amaç için belirli olarak  oluşturulan aşağıdaki exception türlerinden birinin kullanılması daha anlamlıdır:

- - - -

throw ifadesi

- -

Bir exception fırlatmak için throw ifadesini kullanılır. Bir exception fırlattığınız zaman, fırlatılacak ifadeyi de belirlersiniz:

- -
throw ifade;
-
- -

Herhangi bir türdeki ifadeyi exception olarak fırlatabilirsiniz. Aşağıdaki kodda çeşitli türlerdeki exception'lar fırlatılmaktadır:

- -
throw "Hata2";   // String türü
-throw 42;         // Sayı türü
-throw true;       // Boolean türü
-throw { toString: function() { return "Ben bir nesneyim."; } };
-
- -
Not: Bir exception fırlatırken ilgili exception nesnesini belirleyebilirsiniz. Daha sonra catch bloğunda hatayı yakaladığınızda ilgili exception nesnesinin özelliklerine erişebilirsiniz. Aşağıdaki ifadede, KullanıcıHatası sınıfından bir nesne oluşturulmakta, ve throw ifadesinde bu nesne fırlatılmaktadır.
- -
// KullanıcıHatası türünde nesne oluşturuluyor
-function KullanıcıHatası(mesaj){
-  this.mesaj=mesaj;
-  this.adı="KullanıcıHatası";
-}
-
-// Oluşturulan KullanıcıHatası nesnesinin konsola yazıldığında güzel bir
-// ifade yazılması için aşağıdaki şekilde toString() fonksiyonunu override ediyoruz.
-KullanıcıHatası.prototype.toString = function () {
-  return this.adı+ ': "' + this.mesaj+ '"';
-}
-
-// KullanıcıHatası nesnesi yaratılır ve exception olarak fırlatılır
-throw new KullanıcıHatası("Yanlış bir değer girdiniz.");
- -

try...catch ifadesi

- -

try...catch ifadesi, çalıştırılması istenen ifadeleri bir blokta tutar. Fırlatılacak exception için bir veya daha fazla ifade belirlenerek, oluşacak bir try...catch ifadesi tarafından yakalanması sağlanır.

- -

try...catch ifadesi, çalıştırılacak bir veya daha fazla komutun yer aldığı, ve try bloğu içerisinde hata oluştuğunda çalışacak ifadeleri içeren, 0 veya daha fazla catch ifadesinin yer aldığı bir try bloğu içerir. Bu şekilde, try içerisinde yer alan başarıyla çalışmasını istediğiniz kodlarda bir sorun oluştuğunda, catch bloğunda bu sorunun üstesinden gelecek kontrolleri yazabilirsiniz. Eğer try bloğu içerisindeki herhangi bir ifade (veya try bloğu içerisinden çağırılan fonksiyon) bir exception fırlatırsa, JavaScript anında catch bloğuna bakar. Eğer try bloğu içerisinde bir exception fırlatılmazsa, catch bloğu çalıştırılmaz ve atlanır. try ve catch bloklarından sonra, eğer varsa finally bloğu da çalıştırılır.

- -

Aşağıdaki örnekte bir try...catch ifadesi kullanılmaktadır. Fonksiyonda, parametre olarak geçilen ay sayısı değeri baz alınarak, diziden ilgili ayın adı getirilmektedir. Eğer ay sayısı değeri 1-12 arasında değilse, "Geçersiz ay sayısı." değeri exception olarak fırlatılır. catch bloğundaki ayAdı değişkeni de "bilinmeyen" olarak atanır.

- -
function getAyAdı(aySayisi) {
-  aySayisi= aySayisi-1; // Dizi indeksi için aySayisi 1 azaltılır (1=Oca, 12=Ara)
-  var aylar= ["Oca","Şub","Mar","Nis","May","Haz","Tem",
-                "Ağu","Eyl","Eki","Kas","Ara"];
-  if (aylar[aySayisi] != null) {
-    return aylar[aySayisi];
-  } else {
-    throw "Geçersiz ay sayısı."; // burada throw ifadesi kullanılıyor
-  }
-}
-
-try { // denenecek ifadeler
-  ayAdı = getAyAdı(aySayim); // function could throw exception
-}
-catch (e) {
-  ayAdı = "bilinmiyor";
-  hatalarımıKaydet(e); // hataların kaydedilmesi için exception nesnesi geçiliyor.
-}
-
- -

catch bloğu

- -

try bloğunda oluşturulan tüm exception'ların yakalanması için catch bloğunu kullanabilirsiniz.

- -
catch (exceptionDeğişkeni) {
-  ifadeler
-}
-
- -

catch bloğunda, throw ifadesi tarafından belirlenecek değerin tutulması için bir değişken tanımlanır; bu değişken kullanılarak, fırlatılan exception ile ilgili bilgiler elde edilmiş olur. catch bloğuna girildiğinde JavaScript, bu değişkenin içini doldurur; değişken değeri sadece catch bloğu süresince geçerli kalır; catch bloğu çalışmasını tamamladığında değişken artık mevcut değildir.

- -

Örneğin aşağıdaki kodda, bir exception fırlatılıyor, ve fırlatıldığı anda otomatik olarak catch bloğuna iletiliyor.

- -
try {
-  throw "hata" // bir exception oluşturur.
-}
-catch (e) {
-  // herhangi bir exception'ı yakalamak için oluşturulan ifadeler
-  hatalarımıKaydet(e) // hataların kaydedilmesi için exception nesnesi geçilir.
-}
-
- -

finally bloğu

- -

finally bloğu, try...catch ifadesinden sonra çalıştırılacak kod satırlarını içerir. finally bloğu, hata olsun veya olmasın çalışır. Eğer hata olmuşsa ve exception fırlatılmışsa, bu hatayı karşılayacak catch bloğu olmasa dahi finally bloğu çalışır. 

- -

finally bloğu, hata oluştuğunda bu hataya sebep olan değişkenin kullandığı kaynakların sisteme geri verilmesi için en iyi yerdir. Bu şekilde hata tüm ayrıntılarıyla çözülmüş olur. Aşağıdaki örnekte bir dosya açılmakta, ve sonrasında dosyaya yazma işlemleri için kullanan ifadeler çalıştırılmaktadır (Sunucu taraflı yazılmış koddur. İstemci tarafında dosyaya yazma işlemleri güvenlik açısından engellenmiştir. Eğer dosya, yazmak için açılırken bir exception fırlatılırsa, kod hata vermeden önce finally bloğu çalışır ve erişilecek dosyayı kapatır.

- -
dosyaAç();
-try {
-  dosyayaYaz(veriler); // Bu kısım hata verebilir
-} catch(e) {
-  hatayıKaydetveGöster(e); // Hata ile ilgili bilgiler kaydedilir ve kullanıcıya bir hata mesajı sunulur.
-} finally {
-  dosyayıKapat(); // Dosyayı kapatır (hata olsa da olmasa da).
-}
-
- -

Eğer finally bloğu bir değer geri döndürürse,  bu değer, try ve catch içerisindeki return ifadelerine bakmaksızın, try-catch-finally ifadesinin tamamı için geri dönüş değeri haline gelir:

- -
function f() {
-  try {
-    console.log(0);
-    throw "hata";
-  } catch(e) {
-    console.log(1);
-    return true; // Buradaki return ifadesi,
-                 // finally bloğu tamamlanana dek duraklatılır.
-    console.log(2); // Üstteki return ifadesinden dolayı çalıştırılmaz.
-  } finally {
-    console.log(3);
-    return false; // catch kısmındaki return ifadesinin üstüne yazar ve geçersiz hale getirir.
-    console.log(4); // return'den dolayı çalıştırılmaz.
-  }
-  // Şimdi "return false" ifadesi çalıştırılır ve fonksiyondan çıkılır.
-  console.log(5); // Çalıştırılmaz.
-}
-f(); // Konsola 0 1 3 yazar ve false değerini döndürür.
-
- -

finally bloğunun, geri dönüş değerlerinin üstüne yazma etkisi, aynı zamanda catch bloğu içerisindeki exception'lar için de aynı şekilde çalışır:

- -
function f() {
-  try {
-    throw "hata";
-  } catch(e) {
-    console.log('İçerideki "hata" yakalandı.');
-    throw e; // Burası finally bloğu tamamlanana dek duraklatılır.
-  } finally {
-    return false; // Önceki "throw" ifadesinin üstüne yazar ve
-                  //  throw ifadesini geçersiz hale getirir.
-  }
-  // Şimdi "return false" ifadesi çalıştırılır.
-}
-
-try {
-  f();
-} catch(e) {
-  // f() fonksiyonundaki throw ifadesi geçersiz hale geldiği için
-  //  buradaki catch bloğu çalıştırılmaz.
-  console.log('Diğer "hata" yakalandı.');
-}
-
-// Ekran çıktısı: İçerideki "hata" yakalandı.
- -

İçiçe try...catch ifadeleri

- -

Bir veya daha fazla iç içe try...catch ifadeleri tanımlayabilirsiniz. Eğer içteki try...catch ifadesinin catch bloğu yoksa, bir dıştaki try...catch ifadesinin catch bloğu kontrol edilir.

- -

Error nesnelerinin etkili kullanımı

- -

Error nesnesinin türüne bağlı olarak,  'name' ve 'message' özellikleri vasıtasıyla daha anlamlı hata mesajları tanımlayabilirsiniz. 'name' özelliği, oluşan hatayı sınıflandırır (örn, 'DOMException' veya 'Error'). 'message' ise hata nesnesinin string'e dönüştürülmesine nazaran  genellikle daha kısa bir mesaj sunulmasına olanak tanır.

- -

Eğer kendi exception nesnelerinizi fırlatıyorsanız ve bu özellikleri kullanarak hatayı anlamlı hale getirmek istiyorsanız Error sınıfının yapıcısının getirdiği avantajlardan faydalanabilirsiniz (örneğin catch bloğunuzun, kendi exception'larınız ile sistem exception'ları arasındaki farkı ayırt edemediği gibi durumlarda). Aşağıdaki örneği inceleyelim:

- -
function hatayaMeyilliFonksiyon() {
-  if (hataVerenFonksiyonumuz()) {
-    throw (new Error('Hata oluştu'));
-  } else {
-    sistemHatasıVerenFonksiyon();
-  }
-}
-
-try {
-  hatayaMeyilliFonksiyon();
-}
-catch (e) {
-  console.log(e.name); // 'Error' yazar
-  console.log(e.message); // 'Hata oluştu' veya bir JavaScript hata mesajı yazar
-}
- -

Promise nesneleri

- -

ECMAScript2015 ile birlikte JavaScript'e, asenkron ve geciktirilmiş işlemlerin akış kontrolünün sağlanması için {{jsxref("Promise")}} nesneleri gelmiştir.

- -

Bir Promise nesnesi aşağıdaki durumlardan birinde bulunur:

- - - -

- -

XHR ile resim yükleme

- -

Promise ve XMLHttpRequest kullanarak bir resmin yüklenmesi için MDN GitHub promise-test sayfasında basit bir örnek mevcuttur. Ayrıca örneği canlı olarak da görebilirsiniz. Örnekteki her aşamaya yorum satırları eklenmiştir. Bu sayede Promise ve XHR mimarisini daha yakından izleyebilirsiniz. Aşağıda Promise nesnesinin akışını gösteren örneğin belgelendirilmemiş sürümü bulunmaktadır:

- -
function resimYükle(url) {
-  return new Promise(function(başarıSonucundaFonk, hataSonucundaFonk) {
-    var istek = new XMLHttpRequest();
-    istek.open('GET', url);
-    istek.responseType = 'blob';
-    istek.onload = function() {
-      if (istek.status === 200) {
-        başarıSonucundaFonk(istek.cevabı);
-      } else {
-        hataSonucundaFonk(Error('Resim yüklenemedi; hata kodu:'
-                     + istek.hataKodu));
-      }
-    };
-    istek.onerror = function() {
-      hataSonucundaFonk(Error('Bir bağlantı hatası oluştu.'));
-    };
-    istek.send();
-  });
-}
- -

Daha fazla detaylı bilgi için {{jsxref("Promise")}} sayfasına bakınız.

- -
{{PreviousNext("Web/JavaScript/Guide/Grammar_and_types", "Web/JavaScript/Guide/Loops_and_iteration")}}
diff --git "a/files/tr/web/javascript/guide/nesneler_ile_\303\247al\304\261\305\237mak/index.html" "b/files/tr/web/javascript/guide/nesneler_ile_\303\247al\304\261\305\237mak/index.html" deleted file mode 100644 index 0782b4db6c..0000000000 --- "a/files/tr/web/javascript/guide/nesneler_ile_\303\247al\304\261\305\237mak/index.html" +++ /dev/null @@ -1,504 +0,0 @@ ---- -title: Nesnelerle çalışmak -slug: Web/JavaScript/Guide/Nesneler_ile_çalışmak -translation_of: Web/JavaScript/Guide/Working_with_Objects ---- -
{{jsSidebar("JavaScript Rehberi")}} {{PreviousNext("Web/JavaScript/Guide/Keyed_collections", "Web/JavaScript/Guide/Details_of_the_Object_Model")}}
- -

JavaScript basit bir nesne tabanlı paradigmada tasarlanmıştır. Bir nesne bir özellikler koleksiyonudur ve bir özellik bir ad (veya anahtar) ile bir değer arasındaki ilişkidir. Bir özelliğin değeri bir fonksiyon olabilir, bu durumda özellik bir metod olarak bilinir. Tarayıcıda önceden tanımlanmış olan nesnelere ek olarak, kendi nesnelerinizi de tanımlayabilirsiniz. Bu bölümde, nesnelerin, özelliklerin, fonksiyonların ve metodların nasıl kullanıldığı ve kendi nesnelerinizin nasıl oluşturulacağı açıklanmaktadır.

- -

Nesnelere genel bakış

- -

JavaScript'teki nesneler, diğer birçok programlama dilinde olduğu gibi, gerçek hayattaki nesnelerle karşılaştırılabilir. JavaScript'teki nesneler kavramı gerçek hayattaki somut nesnelerle anlaşılabilir.

- -

JavaScript'te bir nesne, özellikleri ve tipiyle bağımsız bir varlıktır. Örneğin bir fincanla karşılaştırın. Bir fincan, özellikleri olan bir nesnedir. Bir fincan bir renge, bir tasarıma, ağırlığa, yapıldığı bir malzemeye vs. sahiptir. Aynı şekilde, JavaScript nesnelerinin de özelliklerini tanımlayan özellikleri olabilir.

- -

Nesneler ve özellikleri

- -

A JavaScript object has properties associated with it. A property of an object can be explained as a variable that is attached to the object. Object properties are basically the same as ordinary JavaScript variables, except for the attachment to objects. The properties of an object define the characteristics of the object. You access the properties of an object with a simple dot-notation:

- -
objectName.propertyName
-
- -

Like all JavaScript variables, both the object name (which could be a normal variable) and property name are case sensitive. You can define a property by assigning it a value. For example, let's create an object named myCar and give it properties named make, model, and year as follows:

- -
var myCar = new Object();
-myCar.make = 'Ford';
-myCar.model = 'Mustang';
-myCar.year = 1969;
-
- -

Unassigned properties of an object are {{jsxref("undefined")}} (and not {{jsxref("null")}}).

- -
myCar.color; // undefined
- -

Properties of JavaScript objects can also be accessed or set using a bracket notation (for more details see property accessors). Objects are sometimes called associative arrays, since each property is associated with a string value that can be used to access it. So, for example, you could access the properties of the myCar object as follows:

- -
myCar['make'] = 'Ford';
-myCar['model'] = 'Mustang';
-myCar['year'] = 1969;
-
- -

An object property name can be any valid JavaScript string, or anything that can be converted to a string, including the empty string. However, any property name that is not a valid JavaScript identifier (for example, a property name that has a space or a hyphen, or that starts with a number) can only be accessed using the square bracket notation. This notation is also very useful when property names are to be dynamically determined (when the property name is not determined until runtime). Examples are as follows:

- -
// four variables are created and assigned in a single go,
-// separated by commas
-var myObj = new Object(),
-    str = 'myString',
-    rand = Math.random(),
-    obj = new Object();
-
-myObj.type              = 'Dot syntax';
-myObj['date created']   = 'String with space';
-myObj[str]              = 'String value';
-myObj[rand]             = 'Random Number';
-myObj[obj]              = 'Object';
-myObj['']               = 'Even an empty string';
-
-console.log(myObj);
-
- -

Please note that all keys in the square bracket notation are converted to string unless they're Symbols, since JavaScript object property names (keys) can only be strings or Symbols (at some point, private names will also be added as the class fields proposal progresses, but you won't use them with [] form). For example, in the above code, when the key obj is added to the myObj, JavaScript will call the {{jsxref("Object.toString", "obj.toString()")}} method, and use this result string as the new key.

- -

You can also access properties by using a string value that is stored in a variable:

- -
var propertyName = 'make';
-myCar[propertyName] = 'Ford';
-
-propertyName = 'model';
-myCar[propertyName] = 'Mustang';
-
- -

You can use the bracket notation with for...in to iterate over all the enumerable properties of an object. To illustrate how this works, the following function displays the properties of the object when you pass the object and the object's name as arguments to the function:

- -
function showProps(obj, objName) {
-  var result = ``;
-  for (var i in obj) {
-    // obj.hasOwnProperty() is used to filter out properties from the object's prototype chain
-    if (obj.hasOwnProperty(i)) {
-      result += `${objName}.${i} = ${obj[i]}\n`;
-    }
-  }
-  return result;
-}
-
- -

So, the function call showProps(myCar, "myCar") would return the following:

- -
myCar.make = Ford
-myCar.model = Mustang
-myCar.year = 1969
- -

Enumerate the properties of an object

- -

Starting with ECMAScript 5, there are three native ways to list/traverse object properties:

- - - -

Before ECMAScript 5, there was no native way to list all properties of an object. However, this can be achieved with the following function:

- -
function listAllProperties(o) {
-	var objectToInspect;
-	var result = [];
-
-	for(objectToInspect = o; objectToInspect !== null;
-           objectToInspect = Object.getPrototypeOf(objectToInspect)) {
-        result = result.concat(
-            Object.getOwnPropertyNames(objectToInspect)
-        );
-    }
-
-	return result;
-}
-
- -

This can be useful to reveal "hidden" properties (properties in the prototype chain which are not accessible through the object, because another property has the same name earlier in the prototype chain). Listing accessible properties only can easily be done by removing duplicates in the array.

- -

Creating new objects

- -

JavaScript has a number of predefined objects. In addition, you can create your own objects. You can create an object using an object initializer. Alternatively, you can first create a constructor function and then instantiate an object invoking that function in conjunction with the new operator.

- -

Using object initializers

- -

In addition to creating objects using a constructor function, you can create objects using an object initializer. Using object initializers is sometimes referred to as creating objects with literal notation. "Object initializer" is consistent with the terminology used by C++.

- -

The syntax for an object using an object initializer is:

- -
var obj = { property_1:   value_1,   // property_# may be an identifier...
-            2:            value_2,   // or a number...
-            // ...,
-            'property n': value_n }; // or a string
-
- -

where obj is the name of the new object, each property_i is an identifier (either a name, a number, or a string literal), and each value_i is an expression whose value is assigned to the property_i. The obj and assignment is optional; if you do not need to refer to this object elsewhere, you do not need to assign it to a variable. (Note that you may need to wrap the object literal in parentheses if the object appears where a statement is expected, so as not to have the literal be confused with a block statement.)

- -

Object initializers are expressions, and each object initializer results in a new object being created whenever the statement in which it appears is executed. Identical object initializers create distinct objects that will not compare to each other as equal. Objects are created as if a call to new Object() were made; that is, objects made from object literal expressions are instances of Object.

- -

The following statement creates an object and assigns it to the variable x if and only if the expression cond is true:

- -
if (cond) var x = {greeting: 'hi there'};
-
- -

The following example creates myHonda with three properties. Note that the engine property is also an object with its own properties.

- -
var myHonda = {color: 'red', wheels: 4, engine: {cylinders: 4, size: 2.2}};
-
- -

You can also use object initializers to create arrays. See array literals.

- -

Using a constructor function

- -

Alternatively, you can create an object with these two steps:

- -
    -
  1. Define the object type by writing a constructor function. There is a strong convention, with good reason, to use a capital initial letter.
  2. -
  3. Create an instance of the object with new.
  4. -
- -

To define an object type, create a function for the object type that specifies its name, properties, and methods. For example, suppose you want to create an object type for cars. You want this type of object to be called Car, and you want it to have properties for make, model, and year. To do this, you would write the following function:

- -
function Car(make, model, year) {
-  this.make = make;
-  this.model = model;
-  this.year = year;
-}
-
- -

Notice the use of this to assign values to the object's properties based on the values passed to the function.

- -

Now you can create an object called mycar as follows:

- -
var mycar = new Car('Eagle', 'Talon TSi', 1993);
-
- -

This statement creates mycar and assigns it the specified values for its properties. Then the value of mycar.make is the string "Eagle", mycar.year is the integer 1993, and so on.

- -

You can create any number of Car objects by calls to new. For example,

- -
var kenscar = new Car('Nissan', '300ZX', 1992);
-var vpgscar = new Car('Mazda', 'Miata', 1990);
-
- -

An object can have a property that is itself another object. For example, suppose you define an object called person as follows:

- -
function Person(name, age, sex) {
-  this.name = name;
-  this.age = age;
-  this.sex = sex;
-}
-
- -

and then instantiate two new person objects as follows:

- -
var rand = new Person('Rand McKinnon', 33, 'M');
-var ken = new Person('Ken Jones', 39, 'M');
-
- -

Then, you can rewrite the definition of Car to include an owner property that takes a person object, as follows:

- -
function Car(make, model, year, owner) {
-  this.make = make;
-  this.model = model;
-  this.year = year;
-  this.owner = owner;
-}
-
- -

To instantiate the new objects, you then use the following:

- -
var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
-var car2 = new Car('Nissan', '300ZX', 1992, ken);
-
- -

Notice that instead of passing a literal string or integer value when creating the new objects, the above statements pass the objects rand and ken as the arguments for the owners. Then if you want to find out the name of the owner of car2, you can access the following property:

- -
car2.owner.name
-
- -

Note that you can always add a property to a previously defined object. For example, the statement

- -
car1.color = 'black';
-
- -

adds a property color to car1, and assigns it a value of "black." However, this does not affect any other objects. To add the new property to all objects of the same type, you have to add the property to the definition of the Car object type.

- -

Using the Object.create method

- -

Objects can also be created using the {{jsxref("Object.create()")}} method. This method can be very useful, because it allows you to choose the prototype object for the object you want to create, without having to define a constructor function.

- -
// Animal properties and method encapsulation
-var Animal = {
-  type: 'Invertebrates', // Default value of properties
-  displayType: function() {  // Method which will display type of Animal
-    console.log(this.type);
-  }
-};
-
-// Create new animal type called animal1
-var animal1 = Object.create(Animal);
-animal1.displayType(); // Output:Invertebrates
-
-// Create new animal type called Fishes
-var fish = Object.create(Animal);
-fish.type = 'Fishes';
-fish.displayType(); // Output:Fishes
- -

Inheritance

- -

All objects in JavaScript inherit from at least one other object. The object being inherited from is known as the prototype, and the inherited properties can be found in the prototype object of the constructor. See Inheritance and the prototype chain for more information.

- -

Indexing object properties

- -

You can refer to a property of an object either by its property name or by its ordinal index. If you initially define a property by its name, you must always refer to it by its name, and if you initially define a property by an index, you must always refer to it by its index.

- -

This restriction applies when you create an object and its properties with a constructor function (as we did previously with the Car object type) and when you define individual properties explicitly (for example, myCar.color = "red"). If you initially define an object property with an index, such as myCar[5] = "25 mpg", you subsequently refer to the property only as myCar[5].

- -

The exception to this rule is array-like object reflected from HTML, such as the forms array-like object. You can always refer to objects in these array-like objects by either their ordinal number (based on where they appear in the document) or their name (if defined). For example, if the second <FORM> tag in a document has a NAME attribute of "myForm", you can refer to the form as document.forms[1] or document.forms["myForm"] or document.forms.myForm.

- -

Defining properties for an object type

- -

You can add a property to a previously defined object type by using the prototype property. This defines a property that is shared by all objects of the specified type, rather than by just one instance of the object. The following code adds a color property to all objects of type Car, and then assigns a value to the color property of the object car1.

- -
Car.prototype.color = null;
-car1.color = 'black';
-
- -

See the prototype property of the Function object in the JavaScript reference for more information.

- -

Defining methods

- -

A method is a function associated with an object, or, simply put, a method is a property of an object that is a function. Methods are defined the way normal functions are defined, except that they have to be assigned as the property of an object. See also method definitions for more details. An example is:

- -
objectName.methodname = functionName;
-
-var myObj = {
-  myMethod: function(params) {
-    // ...do something
-  }
-
-  // OR THIS WORKS TOO
-
-  myOtherMethod(params) {
-    // ...do something else
-  }
-};
-
- -

where objectName is an existing object, methodname is the name you are assigning to the method, and functionName is the name of the function.

- -

You can then call the method in the context of the object as follows:

- -
object.methodname(params);
-
- -

You can define methods for an object type by including a method definition in the object constructor function. You could define a function that would format and display the properties of the previously-defined Car objects; for example,

- -
function displayCar() {
-  var result = `A Beautiful ${this.year} ${this.make} ${this.model}`;
-  pretty_print(result);
-}
-
- -

where pretty_print is a function to display a horizontal rule and a string. Notice the use of this to refer to the object to which the method belongs.

- -

You can make this function a method of Car by adding the statement

- -
this.displayCar = displayCar;
-
- -

to the object definition. So, the full definition of Car would now look like

- -
function Car(make, model, year, owner) {
-  this.make = make;
-  this.model = model;
-  this.year = year;
-  this.owner = owner;
-  this.displayCar = displayCar;
-}
-
- -

Then you can call the displayCar method for each of the objects as follows:

- -
car1.displayCar();
-car2.displayCar();
-
- -

Using this for object references

- -

JavaScript has a special keyword, this, that you can use within a method to refer to the current object. For example, suppose you have 2 objects, Managerand Intern. Each object have their own nameage and job.  In the function sayHi(), notice there is this.name. When added to the 2 objects they can be called and returns the 'Hello, My name is' then adds the name value from that specific object. As shown below. 

- -
const Manager = {
-  name: "John",
-  age: 27,
-  job: "Software Engineer"
-}
-const Intern= {
-  name: "Ben",
-  age: 21,
-  job: "Software Engineer Intern"
-}
-
-function sayHi() {
-    console.log('Hello, my name is', this.name)
-}
-
-// add sayHi function to both objects
-Manager.sayHi = sayHi;
-Intern.sayHi = sayHi;
-
-Manager.sayHi() // Hello, my name is John'
-Intern.sayHi() // Hello, my name is Ben'
-
- -

The this refers to the object that it is in. You can create a new function called howOldAmI()which logs a sentence saying how old the person is. 

- -
function howOldAmI (){
-  console.log('I am ' + this.age + ' years old.')
-}
-Manager.howOldAmI = howOldAmI;
-Manager.howOldAmI() // I am 27 years old.
-
- -

Defining getters and setters

- -

A getter is a method that gets the value of a specific property. A setter is a method that sets the value of a specific property. You can define getters and setters on any predefined core object or user-defined object that supports the addition of new properties. The syntax for defining getters and setters uses the object literal syntax.

- -

The following illustrates how getters and setters could work for a user-defined object o.

- -
var o = {
-  a: 7,
-  get b() {
-    return this.a + 1;
-  },
-  set c(x) {
-    this.a = x / 2;
-  }
-};
-
-console.log(o.a); // 7
-console.log(o.b); // 8
-o.c = 50;
-console.log(o.a); // 25
-
- -

The o object's properties are:

- - - -

Please note that function names of getters and setters defined in an object literal using "[gs]et property()" (as opposed to __define[GS]etter__ ) are not the names of the getters themselves, even though the [gs]et propertyName(){ } syntax may mislead you to think otherwise. To name a function in a getter or setter using the "[gs]et property()" syntax, define an explicitly named function programmatically using {{jsxref("Object.defineProperty")}} (or the {{jsxref("Object.defineGetter", "Object.prototype.__defineGetter__")}} legacy fallback).

- -

The following code illustrates how getters and setters can extend the {{jsxref("Date")}} prototype to add a year property to all instances of the predefined Date class. It uses the Date class's existing getFullYear and setFullYear methods to support the year property's getter and setter.

- -

These statements define a getter and setter for the year property:

- -
var d = Date.prototype;
-Object.defineProperty(d, 'year', {
-  get: function() { return this.getFullYear(); },
-  set: function(y) { this.setFullYear(y); }
-});
-
- -

These statements use the getter and setter in a Date object:

- -
var now = new Date();
-console.log(now.year); // 2000
-now.year = 2001; // 987617605170
-console.log(now);
-// Wed Apr 18 11:13:25 GMT-0700 (Pacific Daylight Time) 2001
-
- -

In principle, getters and setters can be either

- - - -

When defining getters and setters using object initializers all you need to do is to prefix a getter method with get and a setter method with set. Of course, the getter method must not expect a parameter, while the setter method expects exactly one parameter (the new value to set). For instance:

- -
var o = {
-  a: 7,
-  get b() { return this.a + 1; },
-  set c(x) { this.a = x / 2; }
-};
-
- -

Getters and setters can also be added to an object at any time after creation using the Object.defineProperties method. This method's first parameter is the object on which you want to define the getter or setter. The second parameter is an object whose property names are the getter or setter names, and whose property values are objects for defining the getter or setter functions. Here's an example that defines the same getter and setter used in the previous example:

- -
var o = { a: 0 };
-
-Object.defineProperties(o, {
-    'b': { get: function() { return this.a + 1; } },
-    'c': { set: function(x) { this.a = x / 2; } }
-});
-
-o.c = 10; // Runs the setter, which assigns 10 / 2 (5) to the 'a' property
-console.log(o.b); // Runs the getter, which yields a + 1 or 6
-
- -

Which of the two forms to choose depends on your programming style and task at hand. If you already go for the object initializer when defining a prototype you will probably most of the time choose the first form. This form is more compact and natural. However, if you need to add getters and setters later — because you did not write the prototype or particular object — then the second form is the only possible form. The second form probably best represents the dynamic nature of JavaScript — but it can make the code hard to read and understand.

- -

Deleting properties

- -

You can remove a non-inherited property by using the delete operator. The following code shows how to remove a property.

- -
// Creates a new object, myobj, with two properties, a and b.
-var myobj = new Object;
-myobj.a = 5;
-myobj.b = 12;
-
-// Removes the a property, leaving myobj with only the b property.
-delete myobj.a;
-console.log ('a' in myobj); // output: "false"
-
- -

You can also use delete to delete a global variable if the var keyword was not used to declare the variable:

- -
g = 17;
-delete g;
-
- -

Comparing objects

- -

In JavaScript, objects are a reference type. Two distinct objects are never equal, even if they have the same properties. Only comparing the same object reference with itself yields true.

- -
// Two variables, two distinct objects with the same properties
-var fruit = {name: 'apple'};
-var fruitbear = {name: 'apple'};
-
-fruit == fruitbear; // return false
-fruit === fruitbear; // return false
- -
// Two variables, a single object
-var fruit = {name: 'apple'};
-var fruitbear = fruit;  // Assign fruit object reference to fruitbear
-
-// Here fruit and fruitbear are pointing to same object
-fruit == fruitbear; // return true
-fruit === fruitbear; // return true
-
-fruit.name = 'grape';
-console.log(fruitbear); // output: { name: "grape" }, instead of { name: "apple" }
-
- -

For more information about comparison operators, see Comparison operators.

- -

See also

- - - -

{{PreviousNext("Web/JavaScript/Guide/Regular_Expressions", "Web/JavaScript/Guide/Details_of_the_Object_Model")}}

diff --git a/files/tr/web/javascript/guide/working_with_objects/index.html b/files/tr/web/javascript/guide/working_with_objects/index.html new file mode 100644 index 0000000000..0782b4db6c --- /dev/null +++ b/files/tr/web/javascript/guide/working_with_objects/index.html @@ -0,0 +1,504 @@ +--- +title: Nesnelerle çalışmak +slug: Web/JavaScript/Guide/Nesneler_ile_çalışmak +translation_of: Web/JavaScript/Guide/Working_with_Objects +--- +
{{jsSidebar("JavaScript Rehberi")}} {{PreviousNext("Web/JavaScript/Guide/Keyed_collections", "Web/JavaScript/Guide/Details_of_the_Object_Model")}}
+ +

JavaScript basit bir nesne tabanlı paradigmada tasarlanmıştır. Bir nesne bir özellikler koleksiyonudur ve bir özellik bir ad (veya anahtar) ile bir değer arasındaki ilişkidir. Bir özelliğin değeri bir fonksiyon olabilir, bu durumda özellik bir metod olarak bilinir. Tarayıcıda önceden tanımlanmış olan nesnelere ek olarak, kendi nesnelerinizi de tanımlayabilirsiniz. Bu bölümde, nesnelerin, özelliklerin, fonksiyonların ve metodların nasıl kullanıldığı ve kendi nesnelerinizin nasıl oluşturulacağı açıklanmaktadır.

+ +

Nesnelere genel bakış

+ +

JavaScript'teki nesneler, diğer birçok programlama dilinde olduğu gibi, gerçek hayattaki nesnelerle karşılaştırılabilir. JavaScript'teki nesneler kavramı gerçek hayattaki somut nesnelerle anlaşılabilir.

+ +

JavaScript'te bir nesne, özellikleri ve tipiyle bağımsız bir varlıktır. Örneğin bir fincanla karşılaştırın. Bir fincan, özellikleri olan bir nesnedir. Bir fincan bir renge, bir tasarıma, ağırlığa, yapıldığı bir malzemeye vs. sahiptir. Aynı şekilde, JavaScript nesnelerinin de özelliklerini tanımlayan özellikleri olabilir.

+ +

Nesneler ve özellikleri

+ +

A JavaScript object has properties associated with it. A property of an object can be explained as a variable that is attached to the object. Object properties are basically the same as ordinary JavaScript variables, except for the attachment to objects. The properties of an object define the characteristics of the object. You access the properties of an object with a simple dot-notation:

+ +
objectName.propertyName
+
+ +

Like all JavaScript variables, both the object name (which could be a normal variable) and property name are case sensitive. You can define a property by assigning it a value. For example, let's create an object named myCar and give it properties named make, model, and year as follows:

+ +
var myCar = new Object();
+myCar.make = 'Ford';
+myCar.model = 'Mustang';
+myCar.year = 1969;
+
+ +

Unassigned properties of an object are {{jsxref("undefined")}} (and not {{jsxref("null")}}).

+ +
myCar.color; // undefined
+ +

Properties of JavaScript objects can also be accessed or set using a bracket notation (for more details see property accessors). Objects are sometimes called associative arrays, since each property is associated with a string value that can be used to access it. So, for example, you could access the properties of the myCar object as follows:

+ +
myCar['make'] = 'Ford';
+myCar['model'] = 'Mustang';
+myCar['year'] = 1969;
+
+ +

An object property name can be any valid JavaScript string, or anything that can be converted to a string, including the empty string. However, any property name that is not a valid JavaScript identifier (for example, a property name that has a space or a hyphen, or that starts with a number) can only be accessed using the square bracket notation. This notation is also very useful when property names are to be dynamically determined (when the property name is not determined until runtime). Examples are as follows:

+ +
// four variables are created and assigned in a single go,
+// separated by commas
+var myObj = new Object(),
+    str = 'myString',
+    rand = Math.random(),
+    obj = new Object();
+
+myObj.type              = 'Dot syntax';
+myObj['date created']   = 'String with space';
+myObj[str]              = 'String value';
+myObj[rand]             = 'Random Number';
+myObj[obj]              = 'Object';
+myObj['']               = 'Even an empty string';
+
+console.log(myObj);
+
+ +

Please note that all keys in the square bracket notation are converted to string unless they're Symbols, since JavaScript object property names (keys) can only be strings or Symbols (at some point, private names will also be added as the class fields proposal progresses, but you won't use them with [] form). For example, in the above code, when the key obj is added to the myObj, JavaScript will call the {{jsxref("Object.toString", "obj.toString()")}} method, and use this result string as the new key.

+ +

You can also access properties by using a string value that is stored in a variable:

+ +
var propertyName = 'make';
+myCar[propertyName] = 'Ford';
+
+propertyName = 'model';
+myCar[propertyName] = 'Mustang';
+
+ +

You can use the bracket notation with for...in to iterate over all the enumerable properties of an object. To illustrate how this works, the following function displays the properties of the object when you pass the object and the object's name as arguments to the function:

+ +
function showProps(obj, objName) {
+  var result = ``;
+  for (var i in obj) {
+    // obj.hasOwnProperty() is used to filter out properties from the object's prototype chain
+    if (obj.hasOwnProperty(i)) {
+      result += `${objName}.${i} = ${obj[i]}\n`;
+    }
+  }
+  return result;
+}
+
+ +

So, the function call showProps(myCar, "myCar") would return the following:

+ +
myCar.make = Ford
+myCar.model = Mustang
+myCar.year = 1969
+ +

Enumerate the properties of an object

+ +

Starting with ECMAScript 5, there are three native ways to list/traverse object properties:

+ + + +

Before ECMAScript 5, there was no native way to list all properties of an object. However, this can be achieved with the following function:

+ +
function listAllProperties(o) {
+	var objectToInspect;
+	var result = [];
+
+	for(objectToInspect = o; objectToInspect !== null;
+           objectToInspect = Object.getPrototypeOf(objectToInspect)) {
+        result = result.concat(
+            Object.getOwnPropertyNames(objectToInspect)
+        );
+    }
+
+	return result;
+}
+
+ +

This can be useful to reveal "hidden" properties (properties in the prototype chain which are not accessible through the object, because another property has the same name earlier in the prototype chain). Listing accessible properties only can easily be done by removing duplicates in the array.

+ +

Creating new objects

+ +

JavaScript has a number of predefined objects. In addition, you can create your own objects. You can create an object using an object initializer. Alternatively, you can first create a constructor function and then instantiate an object invoking that function in conjunction with the new operator.

+ +

Using object initializers

+ +

In addition to creating objects using a constructor function, you can create objects using an object initializer. Using object initializers is sometimes referred to as creating objects with literal notation. "Object initializer" is consistent with the terminology used by C++.

+ +

The syntax for an object using an object initializer is:

+ +
var obj = { property_1:   value_1,   // property_# may be an identifier...
+            2:            value_2,   // or a number...
+            // ...,
+            'property n': value_n }; // or a string
+
+ +

where obj is the name of the new object, each property_i is an identifier (either a name, a number, or a string literal), and each value_i is an expression whose value is assigned to the property_i. The obj and assignment is optional; if you do not need to refer to this object elsewhere, you do not need to assign it to a variable. (Note that you may need to wrap the object literal in parentheses if the object appears where a statement is expected, so as not to have the literal be confused with a block statement.)

+ +

Object initializers are expressions, and each object initializer results in a new object being created whenever the statement in which it appears is executed. Identical object initializers create distinct objects that will not compare to each other as equal. Objects are created as if a call to new Object() were made; that is, objects made from object literal expressions are instances of Object.

+ +

The following statement creates an object and assigns it to the variable x if and only if the expression cond is true:

+ +
if (cond) var x = {greeting: 'hi there'};
+
+ +

The following example creates myHonda with three properties. Note that the engine property is also an object with its own properties.

+ +
var myHonda = {color: 'red', wheels: 4, engine: {cylinders: 4, size: 2.2}};
+
+ +

You can also use object initializers to create arrays. See array literals.

+ +

Using a constructor function

+ +

Alternatively, you can create an object with these two steps:

+ +
    +
  1. Define the object type by writing a constructor function. There is a strong convention, with good reason, to use a capital initial letter.
  2. +
  3. Create an instance of the object with new.
  4. +
+ +

To define an object type, create a function for the object type that specifies its name, properties, and methods. For example, suppose you want to create an object type for cars. You want this type of object to be called Car, and you want it to have properties for make, model, and year. To do this, you would write the following function:

+ +
function Car(make, model, year) {
+  this.make = make;
+  this.model = model;
+  this.year = year;
+}
+
+ +

Notice the use of this to assign values to the object's properties based on the values passed to the function.

+ +

Now you can create an object called mycar as follows:

+ +
var mycar = new Car('Eagle', 'Talon TSi', 1993);
+
+ +

This statement creates mycar and assigns it the specified values for its properties. Then the value of mycar.make is the string "Eagle", mycar.year is the integer 1993, and so on.

+ +

You can create any number of Car objects by calls to new. For example,

+ +
var kenscar = new Car('Nissan', '300ZX', 1992);
+var vpgscar = new Car('Mazda', 'Miata', 1990);
+
+ +

An object can have a property that is itself another object. For example, suppose you define an object called person as follows:

+ +
function Person(name, age, sex) {
+  this.name = name;
+  this.age = age;
+  this.sex = sex;
+}
+
+ +

and then instantiate two new person objects as follows:

+ +
var rand = new Person('Rand McKinnon', 33, 'M');
+var ken = new Person('Ken Jones', 39, 'M');
+
+ +

Then, you can rewrite the definition of Car to include an owner property that takes a person object, as follows:

+ +
function Car(make, model, year, owner) {
+  this.make = make;
+  this.model = model;
+  this.year = year;
+  this.owner = owner;
+}
+
+ +

To instantiate the new objects, you then use the following:

+ +
var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
+var car2 = new Car('Nissan', '300ZX', 1992, ken);
+
+ +

Notice that instead of passing a literal string or integer value when creating the new objects, the above statements pass the objects rand and ken as the arguments for the owners. Then if you want to find out the name of the owner of car2, you can access the following property:

+ +
car2.owner.name
+
+ +

Note that you can always add a property to a previously defined object. For example, the statement

+ +
car1.color = 'black';
+
+ +

adds a property color to car1, and assigns it a value of "black." However, this does not affect any other objects. To add the new property to all objects of the same type, you have to add the property to the definition of the Car object type.

+ +

Using the Object.create method

+ +

Objects can also be created using the {{jsxref("Object.create()")}} method. This method can be very useful, because it allows you to choose the prototype object for the object you want to create, without having to define a constructor function.

+ +
// Animal properties and method encapsulation
+var Animal = {
+  type: 'Invertebrates', // Default value of properties
+  displayType: function() {  // Method which will display type of Animal
+    console.log(this.type);
+  }
+};
+
+// Create new animal type called animal1
+var animal1 = Object.create(Animal);
+animal1.displayType(); // Output:Invertebrates
+
+// Create new animal type called Fishes
+var fish = Object.create(Animal);
+fish.type = 'Fishes';
+fish.displayType(); // Output:Fishes
+ +

Inheritance

+ +

All objects in JavaScript inherit from at least one other object. The object being inherited from is known as the prototype, and the inherited properties can be found in the prototype object of the constructor. See Inheritance and the prototype chain for more information.

+ +

Indexing object properties

+ +

You can refer to a property of an object either by its property name or by its ordinal index. If you initially define a property by its name, you must always refer to it by its name, and if you initially define a property by an index, you must always refer to it by its index.

+ +

This restriction applies when you create an object and its properties with a constructor function (as we did previously with the Car object type) and when you define individual properties explicitly (for example, myCar.color = "red"). If you initially define an object property with an index, such as myCar[5] = "25 mpg", you subsequently refer to the property only as myCar[5].

+ +

The exception to this rule is array-like object reflected from HTML, such as the forms array-like object. You can always refer to objects in these array-like objects by either their ordinal number (based on where they appear in the document) or their name (if defined). For example, if the second <FORM> tag in a document has a NAME attribute of "myForm", you can refer to the form as document.forms[1] or document.forms["myForm"] or document.forms.myForm.

+ +

Defining properties for an object type

+ +

You can add a property to a previously defined object type by using the prototype property. This defines a property that is shared by all objects of the specified type, rather than by just one instance of the object. The following code adds a color property to all objects of type Car, and then assigns a value to the color property of the object car1.

+ +
Car.prototype.color = null;
+car1.color = 'black';
+
+ +

See the prototype property of the Function object in the JavaScript reference for more information.

+ +

Defining methods

+ +

A method is a function associated with an object, or, simply put, a method is a property of an object that is a function. Methods are defined the way normal functions are defined, except that they have to be assigned as the property of an object. See also method definitions for more details. An example is:

+ +
objectName.methodname = functionName;
+
+var myObj = {
+  myMethod: function(params) {
+    // ...do something
+  }
+
+  // OR THIS WORKS TOO
+
+  myOtherMethod(params) {
+    // ...do something else
+  }
+};
+
+ +

where objectName is an existing object, methodname is the name you are assigning to the method, and functionName is the name of the function.

+ +

You can then call the method in the context of the object as follows:

+ +
object.methodname(params);
+
+ +

You can define methods for an object type by including a method definition in the object constructor function. You could define a function that would format and display the properties of the previously-defined Car objects; for example,

+ +
function displayCar() {
+  var result = `A Beautiful ${this.year} ${this.make} ${this.model}`;
+  pretty_print(result);
+}
+
+ +

where pretty_print is a function to display a horizontal rule and a string. Notice the use of this to refer to the object to which the method belongs.

+ +

You can make this function a method of Car by adding the statement

+ +
this.displayCar = displayCar;
+
+ +

to the object definition. So, the full definition of Car would now look like

+ +
function Car(make, model, year, owner) {
+  this.make = make;
+  this.model = model;
+  this.year = year;
+  this.owner = owner;
+  this.displayCar = displayCar;
+}
+
+ +

Then you can call the displayCar method for each of the objects as follows:

+ +
car1.displayCar();
+car2.displayCar();
+
+ +

Using this for object references

+ +

JavaScript has a special keyword, this, that you can use within a method to refer to the current object. For example, suppose you have 2 objects, Managerand Intern. Each object have their own nameage and job.  In the function sayHi(), notice there is this.name. When added to the 2 objects they can be called and returns the 'Hello, My name is' then adds the name value from that specific object. As shown below. 

+ +
const Manager = {
+  name: "John",
+  age: 27,
+  job: "Software Engineer"
+}
+const Intern= {
+  name: "Ben",
+  age: 21,
+  job: "Software Engineer Intern"
+}
+
+function sayHi() {
+    console.log('Hello, my name is', this.name)
+}
+
+// add sayHi function to both objects
+Manager.sayHi = sayHi;
+Intern.sayHi = sayHi;
+
+Manager.sayHi() // Hello, my name is John'
+Intern.sayHi() // Hello, my name is Ben'
+
+ +

The this refers to the object that it is in. You can create a new function called howOldAmI()which logs a sentence saying how old the person is. 

+ +
function howOldAmI (){
+  console.log('I am ' + this.age + ' years old.')
+}
+Manager.howOldAmI = howOldAmI;
+Manager.howOldAmI() // I am 27 years old.
+
+ +

Defining getters and setters

+ +

A getter is a method that gets the value of a specific property. A setter is a method that sets the value of a specific property. You can define getters and setters on any predefined core object or user-defined object that supports the addition of new properties. The syntax for defining getters and setters uses the object literal syntax.

+ +

The following illustrates how getters and setters could work for a user-defined object o.

+ +
var o = {
+  a: 7,
+  get b() {
+    return this.a + 1;
+  },
+  set c(x) {
+    this.a = x / 2;
+  }
+};
+
+console.log(o.a); // 7
+console.log(o.b); // 8
+o.c = 50;
+console.log(o.a); // 25
+
+ +

The o object's properties are:

+ + + +

Please note that function names of getters and setters defined in an object literal using "[gs]et property()" (as opposed to __define[GS]etter__ ) are not the names of the getters themselves, even though the [gs]et propertyName(){ } syntax may mislead you to think otherwise. To name a function in a getter or setter using the "[gs]et property()" syntax, define an explicitly named function programmatically using {{jsxref("Object.defineProperty")}} (or the {{jsxref("Object.defineGetter", "Object.prototype.__defineGetter__")}} legacy fallback).

+ +

The following code illustrates how getters and setters can extend the {{jsxref("Date")}} prototype to add a year property to all instances of the predefined Date class. It uses the Date class's existing getFullYear and setFullYear methods to support the year property's getter and setter.

+ +

These statements define a getter and setter for the year property:

+ +
var d = Date.prototype;
+Object.defineProperty(d, 'year', {
+  get: function() { return this.getFullYear(); },
+  set: function(y) { this.setFullYear(y); }
+});
+
+ +

These statements use the getter and setter in a Date object:

+ +
var now = new Date();
+console.log(now.year); // 2000
+now.year = 2001; // 987617605170
+console.log(now);
+// Wed Apr 18 11:13:25 GMT-0700 (Pacific Daylight Time) 2001
+
+ +

In principle, getters and setters can be either

+ + + +

When defining getters and setters using object initializers all you need to do is to prefix a getter method with get and a setter method with set. Of course, the getter method must not expect a parameter, while the setter method expects exactly one parameter (the new value to set). For instance:

+ +
var o = {
+  a: 7,
+  get b() { return this.a + 1; },
+  set c(x) { this.a = x / 2; }
+};
+
+ +

Getters and setters can also be added to an object at any time after creation using the Object.defineProperties method. This method's first parameter is the object on which you want to define the getter or setter. The second parameter is an object whose property names are the getter or setter names, and whose property values are objects for defining the getter or setter functions. Here's an example that defines the same getter and setter used in the previous example:

+ +
var o = { a: 0 };
+
+Object.defineProperties(o, {
+    'b': { get: function() { return this.a + 1; } },
+    'c': { set: function(x) { this.a = x / 2; } }
+});
+
+o.c = 10; // Runs the setter, which assigns 10 / 2 (5) to the 'a' property
+console.log(o.b); // Runs the getter, which yields a + 1 or 6
+
+ +

Which of the two forms to choose depends on your programming style and task at hand. If you already go for the object initializer when defining a prototype you will probably most of the time choose the first form. This form is more compact and natural. However, if you need to add getters and setters later — because you did not write the prototype or particular object — then the second form is the only possible form. The second form probably best represents the dynamic nature of JavaScript — but it can make the code hard to read and understand.

+ +

Deleting properties

+ +

You can remove a non-inherited property by using the delete operator. The following code shows how to remove a property.

+ +
// Creates a new object, myobj, with two properties, a and b.
+var myobj = new Object;
+myobj.a = 5;
+myobj.b = 12;
+
+// Removes the a property, leaving myobj with only the b property.
+delete myobj.a;
+console.log ('a' in myobj); // output: "false"
+
+ +

You can also use delete to delete a global variable if the var keyword was not used to declare the variable:

+ +
g = 17;
+delete g;
+
+ +

Comparing objects

+ +

In JavaScript, objects are a reference type. Two distinct objects are never equal, even if they have the same properties. Only comparing the same object reference with itself yields true.

+ +
// Two variables, two distinct objects with the same properties
+var fruit = {name: 'apple'};
+var fruitbear = {name: 'apple'};
+
+fruit == fruitbear; // return false
+fruit === fruitbear; // return false
+ +
// Two variables, a single object
+var fruit = {name: 'apple'};
+var fruitbear = fruit;  // Assign fruit object reference to fruitbear
+
+// Here fruit and fruitbear are pointing to same object
+fruit == fruitbear; // return true
+fruit === fruitbear; // return true
+
+fruit.name = 'grape';
+console.log(fruitbear); // output: { name: "grape" }, instead of { name: "apple" }
+
+ +

For more information about comparison operators, see Comparison operators.

+ +

See also

+ + + +

{{PreviousNext("Web/JavaScript/Guide/Regular_Expressions", "Web/JavaScript/Guide/Details_of_the_Object_Model")}}

-- cgit v1.2.3-54-g00ecf From b7edf84c423a5f25ebb340fcdab552d5784e2109 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:32 +0100 Subject: unslug tr: modify --- files/tr/_redirects.txt | 160 +- files/tr/_wikihistory.json | 1794 ++++++++++---------- .../cascade_and_inheritance/index.html | 3 +- .../learn/css/first_steps/how_css_works/index.html | 3 +- .../index.html | 6 +- .../index.html | 4 +- .../conflicting/learn/css/first_steps/index.html | 5 +- .../reference/global_objects/boolean/index.html | 3 +- .../reference/global_objects/map/index.html | 3 +- .../web/javascript/reference/operators/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- files/tr/games/index.html | 3 +- files/tr/glossary/browser/index.html | 3 +- files/tr/glossary/object/index.html | 3 +- files/tr/glossary/oop/index.html | 3 +- files/tr/glossary/protocol/index.html | 3 +- .../what_are_browser_developer_tools/index.html | 3 +- .../backgrounds_and_borders/index.html | 3 +- .../cascade_and_inheritance/index.html | 3 +- .../css/building_blocks/debugging_css/index.html | 3 +- .../handling_different_text_directions/index.html | 3 +- .../images_media_form_elements/index.html | 5 +- files/tr/learn/css/building_blocks/index.html | 3 +- .../css/building_blocks/organizing/index.html | 3 +- .../css/building_blocks/overflow_tasks/index.html | 3 +- .../building_blocks/overflowing_content/index.html | 3 +- .../building_blocks/sizing_items_in_css/index.html | 3 +- .../css/building_blocks/sizing_tasks/index.html | 3 +- .../css/building_blocks/styling_tables/index.html | 3 +- .../index.html | 3 +- .../css/building_blocks/the_box_model/index.html | 3 +- .../building_blocks/values_and_units/index.html | 3 +- .../css/building_blocks/values_tasks/index.html | 3 +- .../building_blocks/writing_modes_tasks/index.html | 3 +- files/tr/learn/css/css_layout/index.html | 3 +- .../learn/css/css_layout/introduction/index.html | 3 +- .../css/first_steps/getting_started/index.html | 3 +- .../first_steps/how_css_is_structured/index.html | 3 +- .../learn/css/first_steps/how_css_works/index.html | 3 +- files/tr/learn/css/first_steps/index.html | 3 +- .../using_your_new_knowledge/index.html | 3 +- .../learn/css/first_steps/what_is_css/index.html | 3 +- files/tr/learn/css/index.html | 3 +- .../learn/css/styling_text/fundamentals/index.html | 3 +- files/tr/learn/css/styling_text/index.html | 3 +- .../css/styling_text/styling_links/index.html | 3 +- .../css/styling_text/styling_lists/index.html | 3 +- .../styling_text/typesetting_a_homepage/index.html | 3 +- .../tr/learn/css/styling_text/web_fonts/index.html | 3 +- files/tr/learn/front-end_web_developer/index.html | 3 +- .../how_the_web_works/index.html | 3 +- .../learn/getting_started_with_the_web/index.html | 3 +- .../installing_basic_software/index.html | 3 +- .../javascript_basics/index.html | 3 +- .../what_will_your_website_look_like/index.html | 3 +- files/tr/learn/html/index.html | 3 +- .../getting_started/index.html | 3 +- .../tr/learn/html/introduction_to_html/index.html | 3 +- files/tr/learn/index.html | 3 +- .../first_steps/a_first_splash/index.html | 3 +- files/tr/learn/javascript/first_steps/index.html | 3 +- files/tr/learn/javascript/index.html | 3 +- .../tr/learn/javascript/objects/basics/index.html | 3 +- files/tr/learn/javascript/objects/index.html | 3 +- .../server-side/django/authentication/index.html | 3 +- files/tr/learn/server-side/django/index.html | 3 +- .../learn/server-side/django/sessions/index.html | 3 +- .../server-side/django/skeleton_website/index.html | 3 +- files/tr/learn/server-side/index.html | 3 +- files/tr/mdn/about/index.html | 3 +- files/tr/mdn/at_ten/index.html | 3 +- .../howto/create_and_edit_pages/index.html | 3 +- .../tools/kumascript/troubleshooting/index.html | 3 +- files/tr/mdn/yari/index.html | 3 +- files/tr/mozilla/add-ons/index.html | 3 +- .../extending_the_developer_tools/index.html | 3 +- files/tr/mozilla/add-ons/webextensions/index.html | 3 +- .../webextensions/user_interface/index.html | 3 +- .../what_are_webextensions/index.html | 3 +- .../your_first_webextension/index.html | 3 +- .../mozilla/developer_guide/source_code/index.html | 3 +- .../tr/orphaned/fennec_(firefox_mobile)/index.html | 3 +- files/tr/orphaned/mdn/community/index.html | 3 +- .../howto/do_an_editorial_review/index.html | 3 +- files/tr/orphaned/mdn/editor/basics/index.html | 3 +- files/tr/orphaned/mdn/editor/index.html | 3 +- .../tr/orphaned/mdn/kuma/server_charts/index.html | 3 +- .../tr/orphaned/mdn/tools/page_watching/index.html | 3 +- .../getting_started_with_web-ext/index.html | 3 +- files/tr/orphaned/tr/index.html | 3 +- files/tr/orphaned/web/html-alani/index.html | 3 +- .../global_objects/array/prototype/index.html | 3 +- files/tr/tools/browser_console/index.html | 3 +- files/tr/tools/debugger/index.html | 3 +- files/tr/tools/index.html | 3 +- files/tr/tools/page_inspector/index.html | 3 +- files/tr/tools/performance/index.html | 3 +- files/tr/tools/remote_debugging/index.html | 3 +- files/tr/tools/web_console/index.html | 3 +- files/tr/tools/web_console/rich_output/index.html | 3 +- .../tr/tools/web_console/split_console/index.html | 3 +- .../the_command_line_interpreter/index.html | 3 +- files/tr/tools/web_console/ui_tour/index.html | 3 +- files/tr/web/api/canvas_api/index.html | 3 +- files/tr/web/css/class_selectors/index.html | 3 +- .../introduction_to_the_css_box_model/index.html | 3 +- .../using_css_counters/index.html | 3 +- files/tr/web/css/css_selectors/index.html | 3 +- files/tr/web/css/margin/index.html | 3 +- files/tr/web/css/type_selectors/index.html | 3 +- files/tr/web/guide/graphics/index.html | 3 +- files/tr/web/guide/html/html5/index.html | 3 +- files/tr/web/html/element/aside/index.html | 3 +- files/tr/web/html/element/head/index.html | 3 +- files/tr/web/html/element/hgroup/index.html | 3 +- files/tr/web/html/element/index.html | 5 +- files/tr/web/html/element/li/index.html | 3 +- files/tr/web/html/element/link/index.html | 3 +- files/tr/web/http/methods/index.html | 3 +- files/tr/web/http/session/index.html | 3 +- files/tr/web/javascript/data_structures/index.html | 3 +- .../control_flow_and_error_handling/index.html | 3 +- files/tr/web/javascript/guide/functions/index.html | 3 +- .../guide/working_with_objects/index.html | 3 +- .../reference/operators/function_star_/index.html | 3 +- .../web/javascript/reference/operators/index.html | 3 +- .../reference/operators/instanceof/index.html | 3 +- .../reference/operators/super/index.html | 3 +- .../javascript/reference/operators/this/index.html | 3 +- .../reference/operators/typeof/index.html | 3 +- files/tr/web/manifest/index.html | 3 +- files/tr/web/security/index.html | 3 +- files/tr/web/security/mixed_content/index.html | 3 +- .../security/transport_layer_security/index.html | 3 +- .../security/weak_signature_algorithm/index.html | 3 +- 136 files changed, 1316 insertions(+), 1052 deletions(-) (limited to 'files/tr/web/javascript/guide') diff --git a/files/tr/_redirects.txt b/files/tr/_redirects.txt index 50eedf6296..6409aff89b 100644 --- a/files/tr/_redirects.txt +++ b/files/tr/_redirects.txt @@ -1,33 +1,159 @@ # FROM-URL TO-URL /tr/docs/AJAX /tr/docs/Web/Guide/AJAX +/tr/docs/Araclar /tr/docs/Tools +/tr/docs/Araclar/Browser_Console /tr/docs/Tools/Browser_Console +/tr/docs/Araclar/HataAyıklayıcı /tr/docs/Tools/Debugger +/tr/docs/Araclar/Page_Inspector /tr/docs/Tools/Page_Inspector +/tr/docs/Araclar/Performance /tr/docs/Tools/Performance +/tr/docs/Araclar/Remote_Debugging /tr/docs/Tools/Remote_Debugging +/tr/docs/Araclar/Web_Konsolu /tr/docs/Tools/Web_Console +/tr/docs/Araclar/Web_Konsolu/Bolunmus_Konsol /tr/docs/Tools/Web_Console/Split_console +/tr/docs/Araclar/Web_Konsolu/Komut_Satiri_Tercumani /tr/docs/Tools/Web_Console/The_command_line_interpreter +/tr/docs/Araclar/Web_Konsolu/Web_Konsolunu_Acmak /tr/docs/Tools/Web_Console/UI_Tour +/tr/docs/Araclar/Web_Konsolu/Zengin_Cikti /tr/docs/Tools/Web_Console/Rich_output +/tr/docs/Fennec_(Firefox_Mobile) /tr/docs/orphaned/Fennec_(Firefox_Mobile) +/tr/docs/Glossary/NYP /tr/docs/Glossary/OOP +/tr/docs/Glossary/Nesne /tr/docs/Glossary/Object +/tr/docs/Glossary/Protokol /tr/docs/Glossary/Protocol +/tr/docs/Glossary/Web_Tarayıcısı /tr/docs/Glossary/Browser /tr/docs/HTML /tr/docs/Web/HTML -/tr/docs/HTML/Giriş /tr/docs/Öğren/HTML/Introduction_to_HTML -/tr/docs/HTML/HTML5 /tr/docs/Web/HTML/HTML5 +/tr/docs/HTML/Element /tr/docs/Web/HTML/Element +/tr/docs/HTML/Element/aside /tr/docs/Web/HTML/Element/aside +/tr/docs/HTML/Element/head /tr/docs/Web/HTML/Element/head +/tr/docs/HTML/Element/hgroup /tr/docs/Web/HTML/Element/hgroup +/tr/docs/HTML/Element/li /tr/docs/Web/HTML/Element/li +/tr/docs/HTML/Element/link /tr/docs/Web/HTML/Element/link +/tr/docs/HTML/Giriş /tr/docs/Learn/HTML/Introduction_to_HTML +/tr/docs/HTML/HTML5 /tr/docs/Web/Guide/HTML/HTML5 /tr/docs/JavaScript /tr/docs/Web/JavaScript /tr/docs/JavaScript/A_re-introduction_to_JavaScript /tr/docs/Web/JavaScript/A_re-introduction_to_JavaScript /tr/docs/JavaScript/Guide /tr/docs/Web/JavaScript/Guide -/tr/docs/JavaScript/Guide/Ifadeler /tr/docs/Web/JavaScript/Guide/Ifadeler +/tr/docs/JavaScript/Guide/Ifadeler /tr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling /tr/docs/JavaScript/Reference /tr/docs/Web/JavaScript/Reference /tr/docs/JavaScript/Reference/Global_Objects /tr/docs/Web/JavaScript/Reference/Global_Objects /tr/docs/JavaScript/Reference/Global_Objects/Array /tr/docs/Web/JavaScript/Reference/Global_Objects/Array /tr/docs/JavaScript/Reference/Global_Objects/Array/concat /tr/docs/Web/JavaScript/Reference/Global_Objects/Array/concat -/tr/docs/JavaScript/Reference/Global_Objects/Array/prototype /tr/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype -/tr/docs/Learn/CSS/CSS_layout /tr/docs/Öğren/CSS/CSS_layout -/tr/docs/Learn/HTML /tr/docs/Öğren/HTML -/tr/docs/Learn/HTML/Introduction_to_HTML /tr/docs/Öğren/HTML/Introduction_to_HTML -/tr/docs/Learn/Server-side /tr/docs/Öğren/Server-side -/tr/docs/Learn/Server-side/Django /tr/docs/Öğren/Server-side/Django -/tr/docs/MDN/Contribute/Editor /tr/docs/MDN/Editor -/tr/docs/MDN/Contribute/Editor/Basics /tr/docs/MDN/Editor/Basics +/tr/docs/JavaScript/Reference/Global_Objects/Array/prototype /tr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/tr/docs/Learn/Common_questions/Tarayıcı_geliştirici_araçları_araçları_nelerdir /tr/docs/Learn/Common_questions/What_are_browser_developer_tools +/tr/docs/MDN/Community /tr/docs/orphaned/MDN/Community +/tr/docs/MDN/Contribute/Editor /tr/docs/orphaned/MDN/Editor +/tr/docs/MDN/Contribute/Editor/Basics /tr/docs/orphaned/MDN/Editor/Basics +/tr/docs/MDN/Contribute/Howto/Editor_incelemesi_nasil_yapilir /tr/docs/orphaned/MDN/Contribute/Howto/Do_an_editorial_review +/tr/docs/MDN/Contribute/Howto/Sayfalar_nasil_olusturulur_duzenlenir /tr/docs/MDN/Contribute/Howto/Create_and_edit_pages /tr/docs/MDN/Contribute/Tools /tr/docs/MDN/Tools -/tr/docs/MDN/Contribute/Tools/Page_watching /tr/docs/MDN/Tools/Page_watching +/tr/docs/MDN/Contribute/Tools/Page_watching /tr/docs/orphaned/MDN/Tools/Page_watching +/tr/docs/MDN/Editor /tr/docs/orphaned/MDN/Editor +/tr/docs/MDN/Editor/Basics /tr/docs/orphaned/MDN/Editor/Basics /tr/docs/MDN/Feedback /tr/docs/MDN/Contribute/Feedback /tr/docs/MDN/Getting_started /tr/docs/MDN/Contribute/Getting_started +/tr/docs/MDN/Hakkinda /tr/docs/MDN/About +/tr/docs/MDN/Kuma /tr/docs/MDN/Yari +/tr/docs/MDN/Kuma/Server_charts /tr/docs/orphaned/MDN/Kuma/Server_charts +/tr/docs/MDN/Kuma/Troubleshooting_KumaScript_errors /tr/docs/MDN/Tools/KumaScript/Troubleshooting +/tr/docs/MDN/Tools/Page_watching /tr/docs/orphaned/MDN/Tools/Page_watching +/tr/docs/MDN_onunda /tr/docs/MDN/At_ten +/tr/docs/Mozilla/Developer_guide/Kaynak_Kod /tr/docs/Mozilla/Developer_guide/Source_Code +/tr/docs/Mozilla/Eklentiler /tr/docs/Mozilla/Add-ons +/tr/docs/Mozilla/Eklentiler/WebExtensions /tr/docs/Mozilla/Add-ons/WebExtensions +/tr/docs/Mozilla/Eklentiler/WebExtensions/Deneyiminize_web-ext_ile_başlayın /tr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext +/tr/docs/Mozilla/Eklentiler/WebExtensions/Eklenti_nedir /tr/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions +/tr/docs/Mozilla/Eklentiler/WebExtensions/Extending_the_developer_tools /tr/docs/Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools +/tr/docs/Mozilla/Eklentiler/WebExtensions/user_interface /tr/docs/Mozilla/Add-ons/WebExtensions/user_interface +/tr/docs/Mozilla/Eklentiler/WebExtensions/İlk_Eklentin /tr/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension +/tr/docs/Oyunlar /tr/docs/Games /tr/docs/Security /en-US/docs/Web/Security +/tr/docs/Security/MixedContent /tr/docs/Web/Security/Mixed_content +/tr/docs/Security/Zatıf_İmza_Algoritması /tr/docs/Web/Security/Weak_Signature_Algorithm +/tr/docs/Tr /tr/docs/orphaned/Tr +/tr/docs/Web/API/Tuval_Arabirimi /tr/docs/Web/API/Canvas_API +/tr/docs/Web/Bildiri /tr/docs/Web/Manifest /tr/docs/Web/CSS/CSS_Background_and_Borders /en-US/docs/Web/CSS/CSS_Backgrounds_and_Borders -/tr/docs/Web/Guide/HTML /tr/docs/Öğren/HTML -/tr/docs/Web/HTML/Element /tr/docs/HTML/Element -/tr/docs/Web/HTML/Element/aside /tr/docs/HTML/Element/aside -/tr/docs/Web/HTML/Element/li /tr/docs/HTML/Element/li -/tr/docs/Web/HTML/Giriş /tr/docs/Öğren/HTML/Introduction_to_HTML +/tr/docs/Web/CSS/Sınıf_seçicileri /tr/docs/Web/CSS/Class_selectors +/tr/docs/Web/CSS/Tip_secicileri /tr/docs/Web/CSS/Type_selectors +/tr/docs/Web/CSS/box_model /tr/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model +/tr/docs/Web/CSS/marjin /tr/docs/Web/CSS/margin +/tr/docs/Web/Guide/CSS/Getting_started /tr/docs/conflicting/Learn/CSS/First_steps +/tr/docs/Web/Guide/CSS/Getting_started/Cascading_and_inheritance /tr/docs/conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance +/tr/docs/Web/Guide/CSS/Getting_started/How_CSS_works /tr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_bb137d8ec11d5e9680f32049e9a3cb26 +/tr/docs/Web/Guide/CSS/Getting_started/Why_use_CSS /tr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_64ba4331a7a5f4319c6e06b06ccdd521 +/tr/docs/Web/Guide/CSS/Getting_started/css_nedir /tr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works +/tr/docs/Web/Guide/CSS/Sayaçlar /tr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +/tr/docs/Web/Guide/HTML /tr/docs/Learn/HTML +/tr/docs/Web/Guide/Çizgeler /tr/docs/Web/Guide/Graphics +/tr/docs/Web/Güvenlik /tr/docs/Web/Security +/tr/docs/Web/Güvenlik/Transport_Layer_Security /tr/docs/Web/Security/Transport_Layer_Security +/tr/docs/Web/HTML-Alani /tr/docs/orphaned/Web/HTML-Alani +/tr/docs/Web/HTML/Giriş /tr/docs/Learn/HTML/Introduction_to_HTML +/tr/docs/Web/HTML/HTML5 /tr/docs/Web/Guide/HTML/HTML5 +/tr/docs/Web/HTTP/Oturum /tr/docs/Web/HTTP/Session +/tr/docs/Web/HTTP/metotlar /tr/docs/Web/HTTP/Methods +/tr/docs/Web/JavaScript/Guide/Fonksiyonlar /tr/docs/Web/JavaScript/Guide/Functions +/tr/docs/Web/JavaScript/Guide/Ifadeler /tr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/tr/docs/Web/JavaScript/Guide/Nesneler_ile_çalışmak /tr/docs/Web/JavaScript/Guide/Working_with_Objects +/tr/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype /tr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/tr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/prototype /tr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean +/tr/docs/Web/JavaScript/Reference/Global_Objects/Map/prototype /tr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Map +/tr/docs/Web/JavaScript/Reference/Operatörler /tr/docs/Web/JavaScript/Reference/Operators +/tr/docs/Web/JavaScript/Reference/Operatörler/Arithmetic_Operators /tr/docs/conflicting/Web/JavaScript/Reference/Operators +/tr/docs/Web/JavaScript/Reference/Operatörler/Bitwise_Operators /tr/docs/conflicting/Web/JavaScript/Reference/Operators_3b90ea9617c66e4283e266b64ea7ae4a +/tr/docs/Web/JavaScript/Reference/Operatörler/Mantiksal_Operatorler /tr/docs/conflicting/Web/JavaScript/Reference/Operators_603c79383d36dadbe5083df806de5999 +/tr/docs/Web/JavaScript/Reference/Operatörler/function* /tr/docs/Web/JavaScript/Reference/Operators/function* +/tr/docs/Web/JavaScript/Reference/Operatörler/instanceof /tr/docs/Web/JavaScript/Reference/Operators/instanceof +/tr/docs/Web/JavaScript/Reference/Operatörler/super /tr/docs/Web/JavaScript/Reference/Operators/super +/tr/docs/Web/JavaScript/Reference/Operatörler/this /tr/docs/Web/JavaScript/Reference/Operators/this +/tr/docs/Web/JavaScript/Reference/Operatörler/typeof /tr/docs/Web/JavaScript/Reference/Operators/typeof +/tr/docs/Web/JavaScript/Veri_Yapısı /tr/docs/Web/JavaScript/Data_structures /tr/docs/en /en-US/ +/tr/docs/Öğren /tr/docs/Learn +/tr/docs/Öğren/CSS /tr/docs/Learn/CSS +/tr/docs/Öğren/CSS/CSS_layout /tr/docs/Learn/CSS/CSS_layout +/tr/docs/Öğren/CSS/CSS_layout/Introduction /tr/docs/Learn/CSS/CSS_layout/Introduction +/tr/docs/Öğren/CSS/CSS_yapi_taslari /tr/docs/Learn/CSS/Building_blocks +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Backgrounds_and_borders /tr/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Cascade_and_inheritance /tr/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Debugging_CSS /tr/docs/Learn/CSS/Building_blocks/Debugging_CSS +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Handling_different_text_directions /tr/docs/Learn/CSS/Building_blocks/Handling_different_text_directions +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Images_media_form_elements /tr/docs/Learn/CSS/Building_blocks/Images_media_form_elements +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Organizing /tr/docs/Learn/CSS/Building_blocks/Organizing +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Overflow_Tasks /tr/docs/Learn/CSS/Building_blocks/Overflow_Tasks +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Overflowing_content /tr/docs/Learn/CSS/Building_blocks/Overflowing_content +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Selectors /tr/docs/Web/CSS/CSS_Selectors +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Sizing_items_in_CSS /tr/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Sizing_tasks /tr/docs/Learn/CSS/Building_blocks/Sizing_tasks +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Styling_tables /tr/docs/Learn/CSS/Building_blocks/Styling_tables +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Test_your_skills_backgrounds_and_borders /tr/docs/Learn/CSS/Building_blocks/Test_your_skills_backgrounds_and_borders +/tr/docs/Öğren/CSS/CSS_yapi_taslari/The_box_model /tr/docs/Learn/CSS/Building_blocks/The_box_model +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Values_and_units /tr/docs/Learn/CSS/Building_blocks/Values_and_units +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Values_tasks /tr/docs/Learn/CSS/Building_blocks/Values_tasks +/tr/docs/Öğren/CSS/CSS_yapi_taslari/Writing_Modes_Tasks /tr/docs/Learn/CSS/Building_blocks/Writing_Modes_Tasks +/tr/docs/Öğren/CSS/Ilk_adimlar /tr/docs/Learn/CSS/First_steps +/tr/docs/Öğren/CSS/Ilk_adimlar/CSS_Nedir /tr/docs/Learn/CSS/First_steps/What_is_CSS +/tr/docs/Öğren/CSS/Ilk_adimlar/CSS_nasil_calisir /tr/docs/Learn/CSS/First_steps/How_CSS_works +/tr/docs/Öğren/CSS/Ilk_adimlar/Getting_started /tr/docs/Learn/CSS/First_steps/Getting_started +/tr/docs/Öğren/CSS/Ilk_adimlar/How_CSS_is_structured /tr/docs/Learn/CSS/First_steps/How_CSS_is_structured +/tr/docs/Öğren/CSS/Ilk_adimlar/Ogrendiklerinizi_Uygulayın /tr/docs/Learn/CSS/First_steps/Using_your_new_knowledge +/tr/docs/Öğren/CSS/Styling_text /tr/docs/Learn/CSS/Styling_text +/tr/docs/Öğren/CSS/Styling_text/Fundamentals /tr/docs/Learn/CSS/Styling_text/Fundamentals +/tr/docs/Öğren/CSS/Styling_text/Styling_links /tr/docs/Learn/CSS/Styling_text/Styling_links +/tr/docs/Öğren/CSS/Styling_text/Styling_lists /tr/docs/Learn/CSS/Styling_text/Styling_lists +/tr/docs/Öğren/CSS/Styling_text/Typesetting_a_homepage /tr/docs/Learn/CSS/Styling_text/Typesetting_a_homepage +/tr/docs/Öğren/CSS/Styling_text/Web_fonts /tr/docs/Learn/CSS/Styling_text/Web_fonts +/tr/docs/Öğren/Front-end_web_developer /tr/docs/Learn/Front-end_web_developer +/tr/docs/Öğren/Getting_started_with_the_web /tr/docs/Learn/Getting_started_with_the_web +/tr/docs/Öğren/Getting_started_with_the_web/How_the_Web_works /tr/docs/Learn/Getting_started_with_the_web/How_the_Web_works +/tr/docs/Öğren/Getting_started_with_the_web/Installing_basic_software /tr/docs/Learn/Getting_started_with_the_web/Installing_basic_software +/tr/docs/Öğren/Getting_started_with_the_web/JavaScript_basics /tr/docs/Learn/Getting_started_with_the_web/JavaScript_basics +/tr/docs/Öğren/Getting_started_with_the_web/Web_siteniz_nasil_gorunecek /tr/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like +/tr/docs/Öğren/HTML /tr/docs/Learn/HTML +/tr/docs/Öğren/HTML/Introduction_to_HTML /tr/docs/Learn/HTML/Introduction_to_HTML +/tr/docs/Öğren/HTML/Introduction_to_HTML/Başlangıç /tr/docs/Learn/HTML/Introduction_to_HTML/Getting_started +/tr/docs/Öğren/JavaScript /tr/docs/Learn/JavaScript +/tr/docs/Öğren/JavaScript/First_steps /tr/docs/Learn/JavaScript/First_steps +/tr/docs/Öğren/JavaScript/First_steps/Javascripte_giris /tr/docs/Learn/JavaScript/First_steps/A_first_splash +/tr/docs/Öğren/JavaScript/Objeler /tr/docs/Learn/JavaScript/Objects +/tr/docs/Öğren/JavaScript/Objeler/Basics /tr/docs/Learn/JavaScript/Objects/Basics +/tr/docs/Öğren/Server-side /tr/docs/Learn/Server-side +/tr/docs/Öğren/Server-side/Django /tr/docs/Learn/Server-side/Django +/tr/docs/Öğren/Server-side/Django/Authentication /tr/docs/Learn/Server-side/Django/Authentication +/tr/docs/Öğren/Server-side/Django/Sessions /tr/docs/Learn/Server-side/Django/Sessions +/tr/docs/Öğren/Server-side/Django/website_iskeleti /tr/docs/Learn/Server-side/Django/skeleton_website diff --git a/files/tr/_wikihistory.json b/files/tr/_wikihistory.json index b9ce5094d2..8932b24ecd 100644 --- a/files/tr/_wikihistory.json +++ b/files/tr/_wikihistory.json @@ -1,91 +1,4 @@ { - "Araclar": { - "modified": "2020-07-16T22:44:18.586Z", - "contributors": [ - "OnKoydenKovuldum", - "2.HALLAÇ", - "SphinxKnight", - "trabjeb", - "fanatikhamsi", - "kizinteki", - "saidkocdemir", - "pasalog", - "eytanfb", - "teoli", - "ibrahimpatir", - "techexpert" - ] - }, - "Araclar/Browser_Console": { - "modified": "2020-07-16T22:35:43.041Z", - "contributors": [ - "muhammet7661" - ] - }, - "Araclar/HataAyıklayıcı": { - "modified": "2020-07-16T22:35:06.533Z", - "contributors": [ - "aslihana", - "olgakaragedik" - ] - }, - "Araclar/Page_Inspector": { - "modified": "2020-10-01T11:04:52.366Z", - "contributors": [ - "SphinxKnight", - "saimairjet", - "ersengultepe" - ] - }, - "Araclar/Performance": { - "modified": "2020-07-16T22:36:13.964Z", - "contributors": [ - "OnKoydenKovuldum" - ] - }, - "Araclar/Remote_Debugging": { - "modified": "2020-07-16T22:35:38.272Z", - "contributors": [ - "volkan" - ] - }, - "Araclar/Web_Konsolu": { - "modified": "2020-07-16T22:34:09.874Z", - "contributors": [ - "OnKoydenKovuldum", - "aslihana" - ] - }, - "Araclar/Web_Konsolu/Bolunmus_Konsol": { - "modified": "2020-07-16T22:34:21.412Z", - "contributors": [ - "aslihana" - ] - }, - "Araclar/Web_Konsolu/Komut_Satiri_Tercumani": { - "modified": "2020-07-16T22:34:19.826Z", - "contributors": [ - "aslihana" - ] - }, - "Araclar/Web_Konsolu/Web_Konsolunu_Acmak": { - "modified": "2020-07-16T22:34:17.660Z", - "contributors": [ - "aslihana" - ] - }, - "Araclar/Web_Konsolu/Zengin_Cikti": { - "modified": "2020-07-16T22:34:20.562Z", - "contributors": [ - "aslihana" - ] - }, - "Fennec_(Firefox_Mobile)": { - "modified": "2019-01-16T14:21:08.717Z", - "contributors": [ - "techexpert" - ] - }, "Games/Tutorials": { "modified": "2020-04-21T07:39:09.746Z" }, @@ -171,24 +84,6 @@ "HuseyinTurkmenoglu" ] }, - "Glossary/NYP": { - "modified": "2019-03-23T22:03:49.060Z", - "contributors": [ - "ahmetkaba" - ] - }, - "Glossary/Nesne": { - "modified": "2019-03-23T22:03:39.438Z", - "contributors": [ - "ahmetkaba" - ] - }, - "Glossary/Protokol": { - "modified": "2019-03-23T22:16:10.981Z", - "contributors": [ - "erolkeskin" - ] - }, "Glossary/Ruby": { "modified": "2019-03-23T22:13:08.594Z", "contributors": [ @@ -207,52 +102,6 @@ "cortix" ] }, - "Glossary/Web_Tarayıcısı": { - "modified": "2019-03-23T22:03:49.780Z", - "contributors": [ - "ahmetkaba" - ] - }, - "HTML/Element": { - "modified": "2019-09-11T09:05:26.771Z", - "contributors": [ - "SphinxKnight", - "SukruKaya", - "teoli" - ] - }, - "HTML/Element/aside": { - "modified": "2019-09-11T09:05:24.353Z", - "contributors": [ - "SphinxKnight", - "Darkefel" - ] - }, - "HTML/Element/head": { - "modified": "2020-10-15T22:33:45.296Z", - "contributors": [ - "Amidfl" - ] - }, - "HTML/Element/hgroup": { - "modified": "2020-10-15T22:24:41.950Z", - "contributors": [ - "cansuari" - ] - }, - "HTML/Element/li": { - "modified": "2019-09-11T09:05:27.766Z", - "contributors": [ - "SphinxKnight", - "pasalog" - ] - }, - "HTML/Element/link": { - "modified": "2020-10-15T22:25:51.442Z", - "contributors": [ - "BaRaN6161_TURK" - ] - }, "Learn/CSS/Building_blocks/Selectors": { "modified": "2020-10-26T18:19:03.862Z", "contributors": [ @@ -299,12 +148,6 @@ "alikcan" ] }, - "Learn/Common_questions/Tarayıcı_geliştirici_araçları_araçları_nelerdir": { - "modified": "2020-07-16T22:35:48.238Z", - "contributors": [ - "hasanunl" - ] - }, "MDN": { "modified": "2020-02-19T17:59:32.812Z", "contributors": [ @@ -319,15 +162,6 @@ "DavidWalsh" ] }, - "MDN/Community": { - "modified": "2019-09-11T08:00:49.740Z", - "contributors": [ - "SphinxKnight", - "BarisAyaz", - "wbamberg", - "anilkay" - ] - }, "MDN/Contribute": { "modified": "2019-03-23T23:12:59.753Z", "contributors": [ @@ -371,285 +205,112 @@ "jswisher" ] }, - "MDN/Contribute/Howto/Editor_incelemesi_nasil_yapilir": { - "modified": "2019-03-23T22:21:04.194Z", + "MDN/Tools": { + "modified": "2020-09-30T16:54:34.254Z", "contributors": [ - "wbamberg", - "fanatikhamsi" + "chrisdavidmills", + "wbamberg" ] }, - "MDN/Contribute/Howto/Sayfalar_nasil_olusturulur_duzenlenir": { - "modified": "2020-10-12T07:44:14.475Z", + "Mozilla": { + "modified": "2019-03-23T23:29:09.914Z", "contributors": [ - "SphinxKnight", - "eminboynukara", - "alpegrup", - "pazzers.info", - "wbamberg", - "erhankilic" + "Sheppy" ] }, - "MDN/Editor": { - "modified": "2020-09-30T15:43:52.765Z", + "Mozilla/Developer_guide": { + "modified": "2020-12-06T09:50:01.354Z", "contributors": [ - "chrisdavidmills", - "zktosu", - "sahinb", + "emrekayik", + "Gabriel-Liu" + ] + }, + "Mozilla/Firefox": { + "modified": "2019-09-10T15:02:32.288Z", + "contributors": [ + "SphinxKnight", "wbamberg", - "Setiawati940@gmail.com" + "tufan2005", + "Relax07" ] }, - "MDN/Editor/Basics": { - "modified": "2020-09-30T15:43:53.305Z", + "Mozilla/Firefox/Releases": { + "modified": "2019-01-16T21:55:24.648Z", "contributors": [ - "chrisdavidmills", "wbamberg", - "balimcann" + "jswisher" ] }, - "MDN/Hakkinda": { - "modified": "2020-05-30T08:22:38.074Z", + "Mozilla/Firefox/Releases/63": { + "modified": "2019-03-18T21:29:50.145Z", "contributors": [ - "Berkay-Cubuk" + "tufan2005" ] }, - "MDN/Kuma": { - "modified": "2019-09-11T08:38:17.228Z", + "Mozilla/Firefox/Releases/81": { + "modified": "2020-09-23T12:11:08.193Z", "contributors": [ - "SphinxKnight", - "wbamberg", - "Sheppy" + "solmusgul17" ] }, - "MDN/Kuma/Server_charts": { - "modified": "2020-04-18T08:41:52.888Z", + "Web": { + "modified": "2019-03-25T10:14:11.494Z", "contributors": [ - "OnKoydenKovuldum" + "hsynozkara", + "alpr", + "barankurtulusozan", + "ozhankurkcu", + "umutozdemir97", + "trabjeb", + "bysalih", + "ercanersoy", + "Criexe", + "askn", + "techexpert", + "ramesaliyev", + "Jan.Ruzicka" ] }, - "MDN/Kuma/Troubleshooting_KumaScript_errors": { - "modified": "2020-04-14T08:39:36.193Z", + "Web/API": { + "modified": "2020-05-24T01:51:32.509Z", "contributors": [ - "SphinxKnight", - "orhanfide1965", + "akarsumelisa17", + "OnKoydenKovuldum", "2.HALLAÇ", - "wbamberg", - "hrctelekom" + "Aqmhkf", + "teoli", + "ozgrozer" ] }, - "MDN/Tools": { - "modified": "2020-09-30T16:54:34.254Z", + "Web/API/BeforeUnloadEvent": { + "modified": "2020-10-15T22:34:36.602Z", "contributors": [ - "chrisdavidmills", - "wbamberg" + "yildirimzia" ] }, - "MDN/Tools/Page_watching": { - "modified": "2020-09-30T16:54:34.403Z", + "Web/API/CSS_Object_Model": { + "modified": "2019-03-18T21:09:36.757Z", "contributors": [ - "chrisdavidmills", - "2.HALLAÇ" + "mesutgolcuk", + "aligoren" ] }, - "MDN_onunda": { - "modified": "2019-03-23T22:48:44.324Z", + "Web/API/CSS_Object_Model/Managing_screen_orientation": { + "modified": "2019-03-18T21:09:36.484Z", "contributors": [ - "hunkarticaret", - "futuredayv" + "mesutgolcuk" ] }, - "Mozilla": { - "modified": "2019-03-23T23:29:09.914Z", + "Web/API/Comment": { + "modified": "2020-10-15T22:34:30.534Z", "contributors": [ - "Sheppy" + "sideshowbarker" ] }, - "Mozilla/Developer_guide": { - "modified": "2020-12-06T09:50:01.354Z", + "Web/API/Comment/Comment": { + "modified": "2020-10-15T22:34:30.407Z", "contributors": [ - "emrekayik", - "Gabriel-Liu" - ] - }, - "Mozilla/Developer_guide/Kaynak_Kod": { - "modified": "2019-08-19T02:39:51.205Z", - "contributors": [ - "SphinxKnight", - "TerabyteForever", - "fatihmeh" - ] - }, - "Mozilla/Eklentiler": { - "modified": "2019-09-09T12:16:58.836Z", - "contributors": [ - "SphinxKnight", - "EfoliTR", - "akyakaapart", - "pasalog", - "Fatih." - ] - }, - "Mozilla/Eklentiler/WebExtensions": { - "modified": "2020-01-23T19:11:12.389Z", - "contributors": [ - "2.HALLAÇ", - "CakirSualp", - "mesutgolcuk", - "tufan2005", - "mutouk" - ] - }, - "Mozilla/Eklentiler/WebExtensions/Deneyiminize_web-ext_ile_başlayın": { - "modified": "2019-04-24T22:00:33.650Z", - "contributors": [ - "Anatolianlion" - ] - }, - "Mozilla/Eklentiler/WebExtensions/Eklenti_nedir": { - "modified": "2019-03-30T13:49:03.756Z", - "contributors": [ - "aceylan" - ] - }, - "Mozilla/Eklentiler/WebExtensions/Extending_the_developer_tools": { - "modified": "2020-04-18T10:07:00.995Z", - "contributors": [ - "OnKoydenKovuldum", - "2.HALLAÇ" - ] - }, - "Mozilla/Eklentiler/WebExtensions/user_interface": { - "modified": "2020-01-23T18:36:25.194Z", - "contributors": [ - "2.HALLAÇ" - ] - }, - "Mozilla/Eklentiler/WebExtensions/İlk_Eklentin": { - "modified": "2019-08-06T17:02:11.469Z", - "contributors": [ - "mesutgolcuk" - ] - }, - "Mozilla/Firefox": { - "modified": "2019-09-10T15:02:32.288Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "tufan2005", - "Relax07" - ] - }, - "Mozilla/Firefox/Releases": { - "modified": "2019-01-16T21:55:24.648Z", - "contributors": [ - "wbamberg", - "jswisher" - ] - }, - "Mozilla/Firefox/Releases/63": { - "modified": "2019-03-18T21:29:50.145Z", - "contributors": [ - "tufan2005" - ] - }, - "Mozilla/Firefox/Releases/81": { - "modified": "2020-09-23T12:11:08.193Z", - "contributors": [ - "solmusgul17" - ] - }, - "Oyunlar": { - "modified": "2020-09-14T16:54:45.005Z", - "contributors": [ - "serdarates", - "Berkay-Cubuk", - "SphinxKnight", - "KayraG" - ] - }, - "Security/MixedContent": { - "modified": "2019-03-23T23:08:55.937Z", - "contributors": [ - "bulutefe" - ] - }, - "Security/Zatıf_İmza_Algoritması": { - "modified": "2019-03-23T22:55:15.192Z", - "contributors": [ - "efeevren" - ] - }, - "Tr": { - "modified": "2019-03-24T00:18:40.718Z", - "contributors": [ - "Criexe", - "teoli", - "techexpert", - "syssgx", - "flodby", - "ACS", - "mepistol", - "huseyin.ozkilic" - ] - }, - "Web": { - "modified": "2019-03-25T10:14:11.494Z", - "contributors": [ - "hsynozkara", - "alpr", - "barankurtulusozan", - "ozhankurkcu", - "umutozdemir97", - "trabjeb", - "bysalih", - "ercanersoy", - "Criexe", - "askn", - "techexpert", - "ramesaliyev", - "Jan.Ruzicka" - ] - }, - "Web/API": { - "modified": "2020-05-24T01:51:32.509Z", - "contributors": [ - "akarsumelisa17", - "OnKoydenKovuldum", - "2.HALLAÇ", - "Aqmhkf", - "teoli", - "ozgrozer" - ] - }, - "Web/API/BeforeUnloadEvent": { - "modified": "2020-10-15T22:34:36.602Z", - "contributors": [ - "yildirimzia" - ] - }, - "Web/API/CSS_Object_Model": { - "modified": "2019-03-18T21:09:36.757Z", - "contributors": [ - "mesutgolcuk", - "aligoren" - ] - }, - "Web/API/CSS_Object_Model/Managing_screen_orientation": { - "modified": "2019-03-18T21:09:36.484Z", - "contributors": [ - "mesutgolcuk" - ] - }, - "Web/API/Comment": { - "modified": "2020-10-15T22:34:30.534Z", - "contributors": [ - "sideshowbarker" - ] - }, - "Web/API/Comment/Comment": { - "modified": "2020-10-15T22:34:30.407Z", - "contributors": [ - "govher.hesretli" + "govher.hesretli" ] }, "Web/API/Document_Object_Model": { @@ -755,12 +416,6 @@ "ercanersoy" ] }, - "Web/API/Tuval_Arabirimi": { - "modified": "2019-03-18T21:29:21.484Z", - "contributors": [ - "alpr" - ] - }, "Web/API/WebGL_API": { "modified": "2019-03-18T21:39:56.129Z", "contributors": [ @@ -868,12 +523,6 @@ "muhammet7661" ] }, - "Web/Bildiri": { - "modified": "2019-03-18T21:28:25.980Z", - "contributors": [ - "alpr" - ] - }, "Web/CSS": { "modified": "2020-09-30T05:40:46.604Z", "contributors": [ @@ -958,18 +607,6 @@ "emredemircan" ] }, - "Web/CSS/Sınıf_seçicileri": { - "modified": "2019-03-23T22:27:43.298Z", - "contributors": [ - "pasalog" - ] - }, - "Web/CSS/Tip_secicileri": { - "modified": "2019-03-23T22:27:57.140Z", - "contributors": [ - "pasalog" - ] - }, "Web/CSS/background": { "modified": "2020-10-15T22:13:04.157Z", "contributors": [ @@ -982,12 +619,6 @@ "esbabaes" ] }, - "Web/CSS/box_model": { - "modified": "2019-03-23T22:52:01.740Z", - "contributors": [ - "cenkingunlugu" - ] - }, "Web/CSS/display": { "modified": "2019-03-23T22:34:43.185Z", "contributors": [ @@ -1004,12 +635,6 @@ "Berkay-Cubuk" ] }, - "Web/CSS/marjin": { - "modified": "2019-03-23T22:21:17.959Z", - "contributors": [ - "asanhix" - ] - }, "Web/CSS/right": { "modified": "2019-03-23T23:01:45.151Z", "contributors": [ @@ -1046,138 +671,61 @@ "Antivir" ] }, - "Web/Guide/CSS/Getting_started": { - "modified": "2019-03-23T22:51:41.513Z", + "Web/HTML": { + "modified": "2020-11-19T16:28:37.122Z", "contributors": [ - "alpr", - "pasalog", - "wjinca" + "burakizmirli252", + "karagozber", + "kuleliajans", + "SphinxKnight" ] }, - "Web/Guide/CSS/Getting_started/Cascading_and_inheritance": { - "modified": "2019-03-23T22:37:30.876Z", + "Web/HTTP": { + "modified": "2020-06-18T23:31:39.971Z", "contributors": [ - "pasalog" + "yagicandegirmenci", + "berkansasmaz", + "gulan_gurman", + "minel", + "DevTahsin", + "erolkeskin" ] }, - "Web/Guide/CSS/Getting_started/How_CSS_works": { - "modified": "2019-03-23T22:50:19.247Z", + "Web/HTTP/CORS": { + "modified": "2020-10-15T22:13:56.598Z", "contributors": [ - "pasalog" + "AhmetGurbuzz", + "hsntngr2" ] }, - "Web/Guide/CSS/Getting_started/Why_use_CSS": { - "modified": "2019-03-23T22:50:18.048Z", + "Web/HTTP/CORS/Errors": { + "modified": "2019-06-29T01:28:26.978Z" + }, + "Web/HTTP/CORS/Errors/CORSRequestNotHttp": { + "modified": "2019-07-01T04:02:13.353Z", "contributors": [ - "alpr", - "pasalog" + "gulan_gurman" ] }, - "Web/Guide/CSS/Getting_started/css_nedir": { - "modified": "2019-03-23T22:51:37.807Z", + "Web/HTTP/Content_negotiation": { + "modified": "2019-07-09T17:01:03.750Z", "contributors": [ - "alpr", - "koca", - "pasalog" + "gulan_gurman" ] }, - "Web/Guide/CSS/Sayaçlar": { - "modified": "2019-03-23T23:10:52.329Z", + "Web/HTTP/Cookies": { + "modified": "2019-07-09T17:25:58.223Z", "contributors": [ - "Criexe" + "gulan_gurman" ] }, - "Web/Guide/Çizgeler": { - "modified": "2019-03-18T21:29:11.131Z", + "Web/HTTP/Headers": { + "modified": "2020-03-01T16:31:58.724Z", "contributors": [ - "alpr" - ] - }, - "Web/Güvenlik": { - "modified": "2019-09-10T16:49:32.135Z", - "contributors": [ - "SphinxKnight", - "umutozdemir97" - ] - }, - "Web/Güvenlik/Transport_Layer_Security": { - "modified": "2020-02-24T22:08:14.293Z", - "contributors": [ - "2.HALLAÇ" - ] - }, - "Web/HTML": { - "modified": "2020-11-19T16:28:37.122Z", - "contributors": [ - "burakizmirli252", - "karagozber", - "kuleliajans", - "SphinxKnight" - ] - }, - "Web/HTML-Alani": { - "modified": "2019-09-11T09:11:52.447Z", - "contributors": [ - "msyx" - ] - }, - "Web/HTML/HTML5": { - "modified": "2020-02-13T03:31:34.810Z", - "contributors": [ - "SphinxKnight", - "alvidaverona", - "beehappycorp", - "teoli", - "saidkocdemir", - "asliturk" - ] - }, - "Web/HTTP": { - "modified": "2020-06-18T23:31:39.971Z", - "contributors": [ - "yagicandegirmenci", - "berkansasmaz", - "gulan_gurman", - "minel", - "DevTahsin", - "erolkeskin" - ] - }, - "Web/HTTP/CORS": { - "modified": "2020-10-15T22:13:56.598Z", - "contributors": [ - "AhmetGurbuzz", - "hsntngr2" - ] - }, - "Web/HTTP/CORS/Errors": { - "modified": "2019-06-29T01:28:26.978Z" - }, - "Web/HTTP/CORS/Errors/CORSRequestNotHttp": { - "modified": "2019-07-01T04:02:13.353Z", - "contributors": [ - "gulan_gurman" - ] - }, - "Web/HTTP/Content_negotiation": { - "modified": "2019-07-09T17:01:03.750Z", - "contributors": [ - "gulan_gurman" - ] - }, - "Web/HTTP/Cookies": { - "modified": "2019-07-09T17:25:58.223Z", - "contributors": [ - "gulan_gurman" - ] - }, - "Web/HTTP/Headers": { - "modified": "2020-03-01T16:31:58.724Z", - "contributors": [ - "t3k3", - "kyilmaz80", - "gulan_gurman", - "chrisdavidmills" + "t3k3", + "kyilmaz80", + "gulan_gurman", + "chrisdavidmills" ] }, "Web/HTTP/Headers/Accept": { @@ -1205,12 +753,6 @@ "ccsplit" ] }, - "Web/HTTP/Oturum": { - "modified": "2019-07-09T17:13:29.470Z", - "contributors": [ - "gulan_gurman" - ] - }, "Web/HTTP/Status": { "modified": "2020-08-24T18:10:50.113Z", "contributors": [ @@ -1294,12 +836,6 @@ "ahmetcanaydemir" ] }, - "Web/HTTP/metotlar": { - "modified": "2020-10-15T22:20:53.566Z", - "contributors": [ - "gulan_gurman" - ] - }, "Web/JavaScript": { "modified": "2020-03-12T19:38:02.900Z", "contributors": [ @@ -1350,17 +886,6 @@ "volkansag" ] }, - "Web/JavaScript/Guide/Fonksiyonlar": { - "modified": "2020-03-12T19:45:10.072Z", - "contributors": [ - "rizikolik", - "meryem", - "mrtymy", - "HuseyinTurkmenoglu", - "abdullahoguk", - "ozcanzaferayan" - ] - }, "Web/JavaScript/Guide/Grammar_and_types": { "modified": "2020-03-12T19:42:41.805Z", "contributors": [ @@ -1370,17 +895,6 @@ "ozcanzaferayan" ] }, - "Web/JavaScript/Guide/Ifadeler": { - "modified": "2020-04-23T07:57:40.916Z", - "contributors": [ - "ahmetcadirci25", - "kahilkubilay", - "ozcanzaferayan", - "pasalog", - "teoli", - "onderomega" - ] - }, "Web/JavaScript/Guide/Introduction": { "modified": "2020-03-12T19:42:33.808Z", "contributors": [ @@ -1400,12 +914,6 @@ "ozgrozer" ] }, - "Web/JavaScript/Guide/Nesneler_ile_çalışmak": { - "modified": "2020-03-12T19:49:40.091Z", - "contributors": [ - "burak-selvi" - ] - }, "Web/JavaScript/Inheritance_and_the_prototype_chain": { "modified": "2020-05-23T12:12:22.330Z", "contributors": [ @@ -1606,13 +1114,6 @@ "4hmetuyar" ] }, - "Web/JavaScript/Reference/Global_Objects/Array/prototype": { - "modified": "2019-03-23T23:24:51.018Z", - "contributors": [ - "teoli", - "ramesaliyev" - ] - }, "Web/JavaScript/Reference/Global_Objects/Array/push": { "modified": "2019-03-23T22:51:14.006Z", "contributors": [ @@ -1670,12 +1171,6 @@ "tugcebaskan" ] }, - "Web/JavaScript/Reference/Global_Objects/Boolean/prototype": { - "modified": "2020-10-15T22:01:56.391Z", - "contributors": [ - "tugcebaskan" - ] - }, "Web/JavaScript/Reference/Global_Objects/Boolean/toSource": { "modified": "2020-10-15T22:01:54.145Z", "contributors": [ @@ -1716,12 +1211,6 @@ "Hixhi" ] }, - "Web/JavaScript/Reference/Global_Objects/Map/prototype": { - "modified": "2020-10-15T22:14:16.067Z", - "contributors": [ - "meryem" - ] - }, "Web/JavaScript/Reference/Global_Objects/Math": { "modified": "2020-10-15T22:30:17.573Z", "contributors": [ @@ -1852,62 +1341,6 @@ "fexri.babasov97" ] }, - "Web/JavaScript/Reference/Operatörler": { - "modified": "2020-03-12T19:41:24.526Z", - "contributors": [ - "pasalog" - ] - }, - "Web/JavaScript/Reference/Operatörler/Arithmetic_Operators": { - "modified": "2020-10-15T22:26:57.237Z", - "contributors": [ - "RawShed" - ] - }, - "Web/JavaScript/Reference/Operatörler/Bitwise_Operators": { - "modified": "2020-10-15T21:59:09.441Z", - "contributors": [ - "cemtopkaya" - ] - }, - "Web/JavaScript/Reference/Operatörler/Mantiksal_Operatorler": { - "modified": "2020-03-12T19:44:53.162Z", - "contributors": [ - "cicekonur", - "umutozdemir97" - ] - }, - "Web/JavaScript/Reference/Operatörler/function*": { - "modified": "2020-10-15T22:03:10.564Z", - "contributors": [ - "mustafakucuk" - ] - }, - "Web/JavaScript/Reference/Operatörler/instanceof": { - "modified": "2020-03-12T19:46:20.732Z", - "contributors": [ - "cenkce" - ] - }, - "Web/JavaScript/Reference/Operatörler/super": { - "modified": "2020-12-04T05:30:41.838Z", - "contributors": [ - "murerkinn" - ] - }, - "Web/JavaScript/Reference/Operatörler/this": { - "modified": "2020-03-12T19:42:15.605Z", - "contributors": [ - "co3moz" - ] - }, - "Web/JavaScript/Reference/Operatörler/typeof": { - "modified": "2020-10-15T22:03:10.125Z", - "contributors": [ - "obzc", - "mustafakucuk" - ] - }, "Web/JavaScript/Reference/Statements": { "modified": "2020-03-12T19:43:07.364Z", "contributors": [ @@ -1965,13 +1398,6 @@ "OnKoydenKovuldum" ] }, - "Web/JavaScript/Veri_Yapısı": { - "modified": "2020-03-12T19:48:25.304Z", - "contributors": [ - "ondrhn", - "BarisAyaz" - ] - }, "Web/MathML": { "modified": "2020-10-15T22:07:35.147Z", "contributors": [ @@ -2016,387 +1442,961 @@ "hakantr" ] }, - "Öğren": { - "modified": "2020-12-12T02:35:21.255Z", + "Tools/Browser_Console": { + "modified": "2020-07-16T22:35:43.041Z", "contributors": [ - "YasinCelebi", - "samrain", - "hakantr", - "zktosu", - "SphinxKnight", - "erhan35", - "kaan35", - "svarlamov", - "engineermetin", - "nahitheper", - "askn" + "muhammet7661" ] }, - "Öğren/CSS": { - "modified": "2020-10-26T19:42:09.137Z", + "Tools/Debugger": { + "modified": "2020-07-16T22:35:06.533Z", "contributors": [ - "hakantr", - "nihalokur", - "Berkay-Cubuk", - "raufsamestone", - "pasalog" + "aslihana", + "olgakaragedik" ] }, - "Öğren/CSS/CSS_layout": { - "modified": "2020-12-09T18:21:04.587Z", + "Tools": { + "modified": "2020-07-16T22:44:18.586Z", "contributors": [ - "hakantr", - "asimcanuz", - "jwhitlock", - "chrisdavidmills" + "OnKoydenKovuldum", + "2.HALLAÇ", + "SphinxKnight", + "trabjeb", + "fanatikhamsi", + "kizinteki", + "saidkocdemir", + "pasalog", + "eytanfb", + "teoli", + "ibrahimpatir", + "techexpert" ] }, - "Öğren/CSS/CSS_layout/Introduction": { - "modified": "2020-12-09T18:22:37.810Z", + "Tools/Page_Inspector": { + "modified": "2020-10-01T11:04:52.366Z", "contributors": [ - "hakantr" + "SphinxKnight", + "saimairjet", + "ersengultepe" ] }, - "Öğren/CSS/CSS_yapi_taslari": { - "modified": "2020-10-26T20:12:35.187Z", + "Tools/Performance": { + "modified": "2020-07-16T22:36:13.964Z", "contributors": [ - "hakantr" + "OnKoydenKovuldum" ] }, - "Öğren/CSS/CSS_yapi_taslari/Backgrounds_and_borders": { - "modified": "2020-10-27T11:49:58.173Z", + "Tools/Remote_Debugging": { + "modified": "2020-07-16T22:35:38.272Z", "contributors": [ - "hakantr" + "volkan" ] }, - "Öğren/CSS/CSS_yapi_taslari/Cascade_and_inheritance": { - "modified": "2020-10-26T19:35:27.880Z", + "Tools/Web_Console/Split_console": { + "modified": "2020-07-16T22:34:21.412Z", "contributors": [ - "hakantr" + "aslihana" ] }, - "Öğren/CSS/CSS_yapi_taslari/Debugging_CSS": { - "modified": "2020-11-03T17:03:37.975Z", + "Tools/Web_Console": { + "modified": "2020-07-16T22:34:09.874Z", "contributors": [ - "hakantr" + "OnKoydenKovuldum", + "aslihana" ] }, - "Öğren/CSS/CSS_yapi_taslari/Handling_different_text_directions": { - "modified": "2020-10-28T17:43:47.416Z", + "Tools/Web_Console/The_command_line_interpreter": { + "modified": "2020-07-16T22:34:19.826Z", "contributors": [ - "hakantr" + "aslihana" ] }, - "Öğren/CSS/CSS_yapi_taslari/Images_media_form_elements": { - "modified": "2020-10-31T13:09:45.996Z", + "Tools/Web_Console/UI_Tour": { + "modified": "2020-07-16T22:34:17.660Z", "contributors": [ - "hakantr" + "aslihana" ] }, - "Öğren/CSS/CSS_yapi_taslari/Organizing": { - "modified": "2020-11-09T10:35:55.540Z", + "Tools/Web_Console/Rich_output": { + "modified": "2020-07-16T22:34:20.562Z", "contributors": [ - "hakantr" + "aslihana" ] }, - "Öğren/CSS/CSS_yapi_taslari/Overflow_Tasks": { - "modified": "2020-10-19T10:29:26.404Z", + "orphaned/Fennec_(Firefox_Mobile)": { + "modified": "2019-01-16T14:21:08.717Z", "contributors": [ - "hakantr" + "techexpert" ] }, - "Öğren/CSS/CSS_yapi_taslari/Overflowing_content": { - "modified": "2020-10-31T10:11:56.872Z", + "Glossary/Object": { + "modified": "2019-03-23T22:03:39.438Z", "contributors": [ - "hakantr" + "ahmetkaba" ] }, - "Öğren/CSS/CSS_yapi_taslari/Selectors": { - "modified": "2020-10-08T05:31:05.552Z", + "Glossary/OOP": { + "modified": "2019-03-23T22:03:49.060Z", "contributors": [ - "hakantr" + "ahmetkaba" ] }, - "Öğren/CSS/CSS_yapi_taslari/Sizing_items_in_CSS": { - "modified": "2020-10-31T10:34:38.784Z", + "Glossary/Protocol": { + "modified": "2019-03-23T22:16:10.981Z", "contributors": [ - "hakantr" + "erolkeskin" ] }, - "Öğren/CSS/CSS_yapi_taslari/Sizing_tasks": { - "modified": "2020-10-22T09:21:20.303Z", + "Glossary/Browser": { + "modified": "2019-03-23T22:03:49.780Z", "contributors": [ - "hakantr" + "ahmetkaba" ] }, - "Öğren/CSS/CSS_yapi_taslari/Styling_tables": { - "modified": "2020-10-31T20:13:56.766Z", + "Web/HTML/Element/aside": { + "modified": "2019-09-11T09:05:24.353Z", "contributors": [ - "hakantr" + "SphinxKnight", + "Darkefel" ] }, - "Öğren/CSS/CSS_yapi_taslari/Test_your_skills_backgrounds_and_borders": { - "modified": "2020-10-17T21:28:55.599Z", + "Web/HTML/Element/head": { + "modified": "2020-10-15T22:33:45.296Z", "contributors": [ - "hakantr" + "Amidfl" ] }, - "Öğren/CSS/CSS_yapi_taslari/The_box_model": { - "modified": "2020-10-26T19:26:58.833Z", + "Web/HTML/Element/hgroup": { + "modified": "2020-10-15T22:24:41.950Z", "contributors": [ - "hakantr" + "cansuari" ] }, - "Öğren/CSS/CSS_yapi_taslari/Values_and_units": { - "modified": "2020-10-28T18:44:28.360Z", + "Web/HTML/Element": { + "modified": "2019-09-11T09:05:26.771Z", "contributors": [ - "hakantr" + "SphinxKnight", + "SukruKaya", + "teoli" ] }, - "Öğren/CSS/CSS_yapi_taslari/Values_tasks": { - "modified": "2020-10-20T12:06:48.608Z", + "Web/HTML/Element/li": { + "modified": "2019-09-11T09:05:27.766Z", "contributors": [ - "hakantr" + "SphinxKnight", + "pasalog" ] }, - "Öğren/CSS/CSS_yapi_taslari/Writing_Modes_Tasks": { - "modified": "2020-10-19T06:58:07.202Z", + "Web/HTML/Element/link": { + "modified": "2020-10-15T22:25:51.442Z", "contributors": [ - "hakantr" + "BaRaN6161_TURK" ] }, - "Öğren/CSS/Ilk_adimlar": { - "modified": "2020-10-26T19:46:11.774Z", + "Learn/Common_questions/What_are_browser_developer_tools": { + "modified": "2020-07-16T22:35:48.238Z", "contributors": [ - "hakantr", - "eraticoye", - "nihalokur", - "Berkay-Cubuk" + "hasanunl" ] }, - "Öğren/CSS/Ilk_adimlar/CSS_Nedir": { - "modified": "2020-10-26T19:52:10.775Z", + "MDN/At_ten": { + "modified": "2019-03-23T22:48:44.324Z", "contributors": [ - "hakantr" + "hunkarticaret", + "futuredayv" ] }, - "Öğren/CSS/Ilk_adimlar/CSS_nasil_calisir": { - "modified": "2020-10-26T20:08:14.999Z", + "orphaned/MDN/Community": { + "modified": "2019-09-11T08:00:49.740Z", "contributors": [ - "hakantr" + "SphinxKnight", + "BarisAyaz", + "wbamberg", + "anilkay" ] }, - "Öğren/CSS/Ilk_adimlar/Getting_started": { - "modified": "2020-10-26T19:58:54.757Z", + "orphaned/MDN/Contribute/Howto/Do_an_editorial_review": { + "modified": "2019-03-23T22:21:04.194Z", "contributors": [ - "hakantr" + "wbamberg", + "fanatikhamsi" ] }, - "Öğren/CSS/Ilk_adimlar/How_CSS_is_structured": { - "modified": "2020-10-26T20:05:43.727Z", + "MDN/Contribute/Howto/Create_and_edit_pages": { + "modified": "2020-10-12T07:44:14.475Z", "contributors": [ - "hakantr" + "SphinxKnight", + "eminboynukara", + "alpegrup", + "pazzers.info", + "wbamberg", + "erhankilic" ] }, - "Öğren/CSS/Ilk_adimlar/Ogrendiklerinizi_Uygulayın": { - "modified": "2020-10-26T20:11:11.186Z", + "orphaned/MDN/Editor/Basics": { + "modified": "2020-09-30T15:43:53.305Z", "contributors": [ - "hakantr" + "chrisdavidmills", + "wbamberg", + "balimcann" ] }, - "Öğren/CSS/Styling_text": { - "modified": "2020-11-09T11:28:43.066Z", + "orphaned/MDN/Editor": { + "modified": "2020-09-30T15:43:52.765Z", "contributors": [ - "hakantr", - "burakbolek", - "nihalokur" + "chrisdavidmills", + "zktosu", + "sahinb", + "wbamberg", + "Setiawati940@gmail.com" ] }, - "Öğren/CSS/Styling_text/Fundamentals": { - "modified": "2020-11-13T11:56:27.954Z", + "MDN/About": { + "modified": "2020-05-30T08:22:38.074Z", "contributors": [ - "hakantr" + "Berkay-Cubuk" ] }, - "Öğren/CSS/Styling_text/Styling_links": { - "modified": "2020-12-06T15:35:17.350Z", + "MDN/Yari": { + "modified": "2019-09-11T08:38:17.228Z", "contributors": [ - "hakantr" + "SphinxKnight", + "wbamberg", + "Sheppy" ] }, - "Öğren/CSS/Styling_text/Styling_lists": { - "modified": "2020-12-04T11:14:25.666Z", + "orphaned/MDN/Kuma/Server_charts": { + "modified": "2020-04-18T08:41:52.888Z", "contributors": [ - "hakantr" + "OnKoydenKovuldum" ] }, - "Öğren/CSS/Styling_text/Typesetting_a_homepage": { - "modified": "2020-12-06T22:45:30.011Z", + "MDN/Tools/KumaScript/Troubleshooting": { + "modified": "2020-04-14T08:39:36.193Z", "contributors": [ - "hakantr" + "SphinxKnight", + "orhanfide1965", + "2.HALLAÇ", + "wbamberg", + "hrctelekom" ] }, - "Öğren/CSS/Styling_text/Web_fonts": { - "modified": "2020-12-06T22:12:35.170Z", + "orphaned/MDN/Tools/Page_watching": { + "modified": "2020-09-30T16:54:34.403Z", "contributors": [ - "hakantr" + "chrisdavidmills", + "2.HALLAÇ" ] }, - "Öğren/Front-end_web_developer": { - "modified": "2020-10-06T04:07:52.094Z", + "Mozilla/Developer_guide/Source_Code": { + "modified": "2019-08-19T02:39:51.205Z", "contributors": [ - "Ebu", - "selinwin7" + "SphinxKnight", + "TerabyteForever", + "fatihmeh" ] }, - "Öğren/Getting_started_with_the_web": { - "modified": "2020-11-02T12:10:16.997Z", + "Mozilla/Add-ons": { + "modified": "2019-09-09T12:16:58.836Z", "contributors": [ - "GreXLin85", - "selinwin7", "SphinxKnight", - "ozcanuner14", - "2.HALLAÇ", - "dotRaikkonen", - "kaan35", - "halimtekin", - "yilmazozisik", - "askn" + "EfoliTR", + "akyakaapart", + "pasalog", + "Fatih." ] }, - "Öğren/Getting_started_with_the_web/How_the_Web_works": { - "modified": "2020-10-24T10:59:07.347Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext": { + "modified": "2019-04-24T22:00:33.650Z", "contributors": [ - "NightCode-luna" + "Anatolianlion" ] }, - "Öğren/Getting_started_with_the_web/Installing_basic_software": { - "modified": "2020-07-16T22:34:11.586Z", + "Mozilla/Add-ons/WebExtensions/What_are_WebExtensions": { + "modified": "2019-03-30T13:49:03.756Z", "contributors": [ - "erhan35", - "HuseyinTurkmenoglu", - "aykutkugu" + "aceylan" ] }, - "Öğren/Getting_started_with_the_web/JavaScript_basics": { - "modified": "2020-12-03T08:49:49.563Z", + "Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools": { + "modified": "2020-04-18T10:07:00.995Z", "contributors": [ - "murerkinn", - "miracyb", - "SphinxKnight", - "umutbozdag", - "alper.pekdemir", - "omrtrk", - "gkhno", - "maydemirx", - "yigitozdemir" + "OnKoydenKovuldum", + "2.HALLAÇ" ] }, - "Öğren/Getting_started_with_the_web/Web_siteniz_nasil_gorunecek": { - "modified": "2020-10-14T06:26:48.114Z", + "Mozilla/Add-ons/WebExtensions/Your_first_WebExtension": { + "modified": "2019-08-06T17:02:11.469Z", "contributors": [ - "AinTisar", - "receponalan" + "mesutgolcuk" ] }, - "Öğren/HTML": { - "modified": "2020-08-07T19:15:04.875Z", + "Mozilla/Add-ons/WebExtensions": { + "modified": "2020-01-23T19:11:12.389Z", "contributors": [ - "bambinam", - "msyx", + "2.HALLAÇ", + "CakirSualp", + "mesutgolcuk", "tufan2005", - "jwhitlock", - "chrisdavidmills" + "mutouk" ] }, - "Öğren/HTML/Introduction_to_HTML": { - "modified": "2020-11-19T16:35:06.616Z", + "Mozilla/Add-ons/WebExtensions/user_interface": { + "modified": "2020-01-23T18:36:25.194Z", "contributors": [ - "burakizmirli252", - "eraticoye", - "erhan35", - "kaan35", - "ebubekirtrkr", - "jwhitlock", - "irfanevrens" + "2.HALLAÇ" ] }, - "Öğren/HTML/Introduction_to_HTML/Başlangıç": { - "modified": "2020-07-16T22:23:08.179Z", + "Learn/CSS/CSS_layout": { + "modified": "2020-12-09T18:21:04.587Z", "contributors": [ - "peterbe", - "tudecem" + "hakantr", + "asimcanuz", + "jwhitlock", + "chrisdavidmills" ] }, - "Öğren/JavaScript": { - "modified": "2020-12-13T14:50:04.266Z", + "Learn/CSS/CSS_layout/Introduction": { + "modified": "2020-12-09T18:22:37.810Z", "contributors": [ - "gullusadik", - "pasalog", - "enesanbar" + "hakantr" ] }, - "Öğren/JavaScript/First_steps": { - "modified": "2020-07-16T22:29:55.523Z", + "Learn/CSS/Building_blocks/Backgrounds_and_borders": { + "modified": "2020-10-27T11:49:58.173Z", "contributors": [ - "busines.plan.16" + "hakantr" ] }, - "Öğren/JavaScript/First_steps/Javascripte_giris": { - "modified": "2020-08-31T10:02:41.505Z", + "Learn/CSS/Building_blocks/Cascade_and_inheritance": { + "modified": "2020-10-26T19:35:27.880Z", "contributors": [ - "aydgn" + "hakantr" ] }, - "Öğren/JavaScript/Objeler": { - "modified": "2020-07-16T22:31:53.513Z", + "Learn/CSS/Building_blocks/Debugging_CSS": { + "modified": "2020-11-03T17:03:37.975Z", "contributors": [ - "berabulut", - "dotRaikkonen", - "truefalseman", - "volkansag", - "enginkartal" + "hakantr" ] }, - "Öğren/JavaScript/Objeler/Basics": { - "modified": "2020-07-16T22:32:02.139Z", + "Learn/CSS/Building_blocks/Handling_different_text_directions": { + "modified": "2020-10-28T17:43:47.416Z", "contributors": [ - "ArinSoftware", - "AtlasCan" + "hakantr" ] }, - "Öğren/Server-side": { - "modified": "2020-07-16T22:36:02.262Z", + "Learn/CSS/Building_blocks/Images_media_form_elements": { + "modified": "2020-10-31T13:09:45.996Z", "contributors": [ - "jwhitlock", - "chrisdavidmills" + "hakantr" ] }, - "Öğren/Server-side/Django": { - "modified": "2020-07-16T22:36:35.695Z", + "Learn/CSS/Building_blocks": { + "modified": "2020-10-26T20:12:35.187Z", "contributors": [ - "jwhitlock", - "chrisdavidmills" + "hakantr" ] }, - "Öğren/Server-side/Django/Authentication": { - "modified": "2020-07-16T22:37:24.649Z", + "Learn/CSS/Building_blocks/Organizing": { + "modified": "2020-11-09T10:35:55.540Z", "contributors": [ - "safaariman", - "icanates" + "hakantr" ] }, - "Öğren/Server-side/Django/Sessions": { - "modified": "2020-07-16T22:37:28.248Z", + "Learn/CSS/Building_blocks/Overflow_Tasks": { + "modified": "2020-10-19T10:29:26.404Z", "contributors": [ - "ozgurturkiye", - "icanates" + "hakantr" ] }, - "Öğren/Server-side/Django/website_iskeleti": { - "modified": "2020-07-16T22:36:54.756Z", + "Learn/CSS/Building_blocks/Overflowing_content": { + "modified": "2020-10-31T10:11:56.872Z", + "contributors": [ + "hakantr" + ] + }, + "Web/CSS/CSS_Selectors": { + "modified": "2020-10-08T05:31:05.552Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Sizing_items_in_CSS": { + "modified": "2020-10-31T10:34:38.784Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Sizing_tasks": { + "modified": "2020-10-22T09:21:20.303Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Styling_tables": { + "modified": "2020-10-31T20:13:56.766Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Test_your_skills_backgrounds_and_borders": { + "modified": "2020-10-17T21:28:55.599Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/The_box_model": { + "modified": "2020-10-26T19:26:58.833Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Values_and_units": { + "modified": "2020-10-28T18:44:28.360Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Values_tasks": { + "modified": "2020-10-20T12:06:48.608Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Building_blocks/Writing_Modes_Tasks": { + "modified": "2020-10-19T06:58:07.202Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/First_steps/How_CSS_works": { + "modified": "2020-10-26T20:08:14.999Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/First_steps/What_is_CSS": { + "modified": "2020-10-26T19:52:10.775Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/First_steps/Getting_started": { + "modified": "2020-10-26T19:58:54.757Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/First_steps/How_CSS_is_structured": { + "modified": "2020-10-26T20:05:43.727Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/First_steps": { + "modified": "2020-10-26T19:46:11.774Z", + "contributors": [ + "hakantr", + "eraticoye", + "nihalokur", + "Berkay-Cubuk" + ] + }, + "Learn/CSS/First_steps/Using_your_new_knowledge": { + "modified": "2020-10-26T20:11:11.186Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS": { + "modified": "2020-10-26T19:42:09.137Z", + "contributors": [ + "hakantr", + "nihalokur", + "Berkay-Cubuk", + "raufsamestone", + "pasalog" + ] + }, + "Learn/CSS/Styling_text/Fundamentals": { + "modified": "2020-11-13T11:56:27.954Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Styling_text": { + "modified": "2020-11-09T11:28:43.066Z", + "contributors": [ + "hakantr", + "burakbolek", + "nihalokur" + ] + }, + "Learn/CSS/Styling_text/Styling_links": { + "modified": "2020-12-06T15:35:17.350Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Styling_text/Styling_lists": { + "modified": "2020-12-04T11:14:25.666Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Styling_text/Typesetting_a_homepage": { + "modified": "2020-12-06T22:45:30.011Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/CSS/Styling_text/Web_fonts": { + "modified": "2020-12-06T22:12:35.170Z", + "contributors": [ + "hakantr" + ] + }, + "Learn/Front-end_web_developer": { + "modified": "2020-10-06T04:07:52.094Z", + "contributors": [ + "Ebu", + "selinwin7" + ] + }, + "Learn/Getting_started_with_the_web/How_the_Web_works": { + "modified": "2020-10-24T10:59:07.347Z", + "contributors": [ + "NightCode-luna" + ] + }, + "Learn/Getting_started_with_the_web": { + "modified": "2020-11-02T12:10:16.997Z", + "contributors": [ + "GreXLin85", + "selinwin7", + "SphinxKnight", + "ozcanuner14", + "2.HALLAÇ", + "dotRaikkonen", + "kaan35", + "halimtekin", + "yilmazozisik", + "askn" + ] + }, + "Learn/Getting_started_with_the_web/Installing_basic_software": { + "modified": "2020-07-16T22:34:11.586Z", + "contributors": [ + "erhan35", + "HuseyinTurkmenoglu", + "aykutkugu" + ] + }, + "Learn/Getting_started_with_the_web/JavaScript_basics": { + "modified": "2020-12-03T08:49:49.563Z", + "contributors": [ + "murerkinn", + "miracyb", + "SphinxKnight", + "umutbozdag", + "alper.pekdemir", + "omrtrk", + "gkhno", + "maydemirx", + "yigitozdemir" + ] + }, + "Learn/Getting_started_with_the_web/What_will_your_website_look_like": { + "modified": "2020-10-14T06:26:48.114Z", + "contributors": [ + "AinTisar", + "receponalan" + ] + }, + "Learn/HTML": { + "modified": "2020-08-07T19:15:04.875Z", + "contributors": [ + "bambinam", + "msyx", + "tufan2005", + "jwhitlock", + "chrisdavidmills" + ] + }, + "Learn/HTML/Introduction_to_HTML/Getting_started": { + "modified": "2020-07-16T22:23:08.179Z", + "contributors": [ + "peterbe", + "tudecem" + ] + }, + "Learn/HTML/Introduction_to_HTML": { + "modified": "2020-11-19T16:35:06.616Z", + "contributors": [ + "burakizmirli252", + "eraticoye", + "erhan35", + "kaan35", + "ebubekirtrkr", + "jwhitlock", + "irfanevrens" + ] + }, + "Learn": { + "modified": "2020-12-12T02:35:21.255Z", + "contributors": [ + "YasinCelebi", + "samrain", + "hakantr", + "zktosu", + "SphinxKnight", + "erhan35", + "kaan35", + "svarlamov", + "engineermetin", + "nahitheper", + "askn" + ] + }, + "Learn/JavaScript/First_steps": { + "modified": "2020-07-16T22:29:55.523Z", + "contributors": [ + "busines.plan.16" + ] + }, + "Learn/JavaScript/First_steps/A_first_splash": { + "modified": "2020-08-31T10:02:41.505Z", + "contributors": [ + "aydgn" + ] + }, + "Learn/JavaScript": { + "modified": "2020-12-13T14:50:04.266Z", + "contributors": [ + "gullusadik", + "pasalog", + "enesanbar" + ] + }, + "Learn/JavaScript/Objects/Basics": { + "modified": "2020-07-16T22:32:02.139Z", + "contributors": [ + "ArinSoftware", + "AtlasCan" + ] + }, + "Learn/JavaScript/Objects": { + "modified": "2020-07-16T22:31:53.513Z", + "contributors": [ + "berabulut", + "dotRaikkonen", + "truefalseman", + "volkansag", + "enginkartal" + ] + }, + "Learn/Server-side/Django/Authentication": { + "modified": "2020-07-16T22:37:24.649Z", + "contributors": [ + "safaariman", + "icanates" + ] + }, + "Learn/Server-side/Django": { + "modified": "2020-07-16T22:36:35.695Z", + "contributors": [ + "jwhitlock", + "chrisdavidmills" + ] + }, + "Learn/Server-side/Django/Sessions": { + "modified": "2020-07-16T22:37:28.248Z", + "contributors": [ + "ozgurturkiye", + "icanates" + ] + }, + "Learn/Server-side/Django/skeleton_website": { + "modified": "2020-07-16T22:36:54.756Z", "contributors": [ "hakanergul" ] + }, + "Learn/Server-side": { + "modified": "2020-07-16T22:36:02.262Z", + "contributors": [ + "jwhitlock", + "chrisdavidmills" + ] + }, + "Games": { + "modified": "2020-09-14T16:54:45.005Z", + "contributors": [ + "serdarates", + "Berkay-Cubuk", + "SphinxKnight", + "KayraG" + ] + }, + "Web/Security/Mixed_content": { + "modified": "2019-03-23T23:08:55.937Z", + "contributors": [ + "bulutefe" + ] + }, + "Web/Security/Weak_Signature_Algorithm": { + "modified": "2019-03-23T22:55:15.192Z", + "contributors": [ + "efeevren" + ] + }, + "orphaned/Tr": { + "modified": "2019-03-24T00:18:40.718Z", + "contributors": [ + "Criexe", + "teoli", + "techexpert", + "syssgx", + "flodby", + "ACS", + "mepistol", + "huseyin.ozkilic" + ] + }, + "Web/API/Canvas_API": { + "modified": "2019-03-18T21:29:21.484Z", + "contributors": [ + "alpr" + ] + }, + "Web/Manifest": { + "modified": "2019-03-18T21:28:25.980Z", + "contributors": [ + "alpr" + ] + }, + "Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model": { + "modified": "2019-03-23T22:52:01.740Z", + "contributors": [ + "cenkingunlugu" + ] + }, + "Web/CSS/Class_selectors": { + "modified": "2019-03-23T22:27:43.298Z", + "contributors": [ + "pasalog" + ] + }, + "Web/CSS/Type_selectors": { + "modified": "2019-03-23T22:27:57.140Z", + "contributors": [ + "pasalog" + ] + }, + "Web/Guide/Graphics": { + "modified": "2019-03-18T21:29:11.131Z", + "contributors": [ + "alpr" + ] + }, + "Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters": { + "modified": "2019-03-23T23:10:52.329Z", + "contributors": [ + "Criexe" + ] + }, + "Web/Security": { + "modified": "2019-09-10T16:49:32.135Z", + "contributors": [ + "SphinxKnight", + "umutozdemir97" + ] + }, + "Web/Security/Transport_Layer_Security": { + "modified": "2020-02-24T22:08:14.293Z", + "contributors": [ + "2.HALLAÇ" + ] + }, + "orphaned/Web/HTML-Alani": { + "modified": "2019-09-11T09:11:52.447Z", + "contributors": [ + "msyx" + ] + }, + "Web/Guide/HTML/HTML5": { + "modified": "2020-02-13T03:31:34.810Z", + "contributors": [ + "SphinxKnight", + "alvidaverona", + "beehappycorp", + "teoli", + "saidkocdemir", + "asliturk" + ] + }, + "Web/HTTP/Methods": { + "modified": "2020-10-15T22:20:53.566Z", + "contributors": [ + "gulan_gurman" + ] + }, + "Web/HTTP/Session": { + "modified": "2019-07-09T17:13:29.470Z", + "contributors": [ + "gulan_gurman" + ] + }, + "Web/JavaScript/Guide/Functions": { + "modified": "2020-03-12T19:45:10.072Z", + "contributors": [ + "rizikolik", + "meryem", + "mrtymy", + "HuseyinTurkmenoglu", + "abdullahoguk", + "ozcanzaferayan" + ] + }, + "Web/JavaScript/Guide/Control_flow_and_error_handling": { + "modified": "2020-04-23T07:57:40.916Z", + "contributors": [ + "ahmetcadirci25", + "kahilkubilay", + "ozcanzaferayan", + "pasalog", + "teoli", + "onderomega" + ] + }, + "Web/JavaScript/Guide/Working_with_Objects": { + "modified": "2020-03-12T19:49:40.091Z", + "contributors": [ + "burak-selvi" + ] + }, + "orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype": { + "modified": "2019-03-23T23:24:51.018Z", + "contributors": [ + "teoli", + "ramesaliyev" + ] + }, + "Web/JavaScript/Reference/Operators/function*": { + "modified": "2020-10-15T22:03:10.564Z", + "contributors": [ + "mustafakucuk" + ] + }, + "Web/JavaScript/Reference/Operators": { + "modified": "2020-03-12T19:41:24.526Z", + "contributors": [ + "pasalog" + ] + }, + "Web/JavaScript/Reference/Operators/instanceof": { + "modified": "2020-03-12T19:46:20.732Z", + "contributors": [ + "cenkce" + ] + }, + "Web/JavaScript/Reference/Operators/super": { + "modified": "2020-12-04T05:30:41.838Z", + "contributors": [ + "murerkinn" + ] + }, + "Web/JavaScript/Reference/Operators/this": { + "modified": "2020-03-12T19:42:15.605Z", + "contributors": [ + "co3moz" + ] + }, + "Web/JavaScript/Reference/Operators/typeof": { + "modified": "2020-10-15T22:03:10.125Z", + "contributors": [ + "obzc", + "mustafakucuk" + ] + }, + "Web/JavaScript/Data_structures": { + "modified": "2020-03-12T19:48:25.304Z", + "contributors": [ + "ondrhn", + "BarisAyaz" + ] + }, + "Web/CSS/margin": { + "modified": "2019-03-23T22:21:17.959Z", + "contributors": [ + "asanhix" + ] + }, + "conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance": { + "modified": "2019-03-23T22:37:30.876Z", + "contributors": [ + "pasalog" + ] + }, + "conflicting/Learn/CSS/First_steps/How_CSS_works": { + "modified": "2019-03-23T22:51:37.807Z", + "contributors": [ + "alpr", + "koca", + "pasalog" + ] + }, + "conflicting/Learn/CSS/First_steps/How_CSS_works_bb137d8ec11d5e9680f32049e9a3cb26": { + "modified": "2019-03-23T22:50:19.247Z", + "contributors": [ + "pasalog" + ] + }, + "conflicting/Learn/CSS/First_steps": { + "modified": "2019-03-23T22:51:41.513Z", + "contributors": [ + "alpr", + "pasalog", + "wjinca" + ] + }, + "conflicting/Learn/CSS/First_steps/How_CSS_works_64ba4331a7a5f4319c6e06b06ccdd521": { + "modified": "2019-03-23T22:50:18.048Z", + "contributors": [ + "alpr", + "pasalog" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Boolean": { + "modified": "2020-10-15T22:01:56.391Z", + "contributors": [ + "tugcebaskan" + ] + }, + "conflicting/Web/JavaScript/Reference/Global_Objects/Map": { + "modified": "2020-10-15T22:14:16.067Z", + "contributors": [ + "meryem" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators": { + "modified": "2020-10-15T22:26:57.237Z", + "contributors": [ + "RawShed" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators_3b90ea9617c66e4283e266b64ea7ae4a": { + "modified": "2020-10-15T21:59:09.441Z", + "contributors": [ + "cemtopkaya" + ] + }, + "conflicting/Web/JavaScript/Reference/Operators_603c79383d36dadbe5083df806de5999": { + "modified": "2020-03-12T19:44:53.162Z", + "contributors": [ + "cicekonur", + "umutozdemir97" + ] } } \ No newline at end of file diff --git a/files/tr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html b/files/tr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html index 3e3d882bdf..112741627e 100644 --- a/files/tr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html +++ b/files/tr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html @@ -1,6 +1,6 @@ --- title: Cascading and inheritance -slug: Web/Guide/CSS/Getting_started/Cascading_and_inheritance +slug: conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance tags: - Başlarken - CSS @@ -10,6 +10,7 @@ tags: - Yeni başlayanlar için translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance translation_of_original: Web/Guide/CSS/Getting_started/Cascading_and_inheritance +original_slug: Web/Guide/CSS/Getting_started/Cascading_and_inheritance ---

{{ CSSTutorialTOC() }}

diff --git a/files/tr/conflicting/learn/css/first_steps/how_css_works/index.html b/files/tr/conflicting/learn/css/first_steps/how_css_works/index.html index 680ab90b30..3cc3c2d098 100644 --- a/files/tr/conflicting/learn/css/first_steps/how_css_works/index.html +++ b/files/tr/conflicting/learn/css/first_steps/how_css_works/index.html @@ -1,6 +1,6 @@ --- title: CSS nedir? -slug: Web/Guide/CSS/Getting_started/css_nedir +slug: conflicting/Learn/CSS/First_steps/How_CSS_works tags: - Başlangıç - Başlarken @@ -10,6 +10,7 @@ tags: - Örnek translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/What_is_CSS +original_slug: Web/Guide/CSS/Getting_started/css_nedir ---
Css {{CSSTutorialTOC}}
diff --git a/files/tr/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html b/files/tr/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html index fa1429e2f9..9b1673fc1b 100644 --- a/files/tr/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html +++ b/files/tr/conflicting/learn/css/first_steps/how_css_works_64ba4331a7a5f4319c6e06b06ccdd521/index.html @@ -1,9 +1,10 @@ --- title: Neden CSS Kullanılır -slug: Web/Guide/CSS/Getting_started/Why_use_CSS +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_64ba4331a7a5f4319c6e06b06ccdd521 tags: - CSS - - 'CSS:Başlarken' + - CSS:Başlarken - Kılavuz - Web - Yeni başlayan @@ -11,6 +12,7 @@ tags: - Örnek translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/Why_use_CSS +original_slug: Web/Guide/CSS/Getting_started/Why_use_CSS ---

{{ CSSTutorialTOC() }}

diff --git a/files/tr/conflicting/learn/css/first_steps/how_css_works_bb137d8ec11d5e9680f32049e9a3cb26/index.html b/files/tr/conflicting/learn/css/first_steps/how_css_works_bb137d8ec11d5e9680f32049e9a3cb26/index.html index 8fbddac78d..e865718c65 100644 --- a/files/tr/conflicting/learn/css/first_steps/how_css_works_bb137d8ec11d5e9680f32049e9a3cb26/index.html +++ b/files/tr/conflicting/learn/css/first_steps/how_css_works_bb137d8ec11d5e9680f32049e9a3cb26/index.html @@ -1,6 +1,7 @@ --- title: How CSS works -slug: Web/Guide/CSS/Getting_started/How_CSS_works +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_bb137d8ec11d5e9680f32049e9a3cb26 tags: - Başlarken - CSS @@ -10,6 +11,7 @@ tags: - Yeni başlayanlar translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/How_CSS_works +original_slug: Web/Guide/CSS/Getting_started/How_CSS_works ---

{{ CSSTutorialTOC() }}

diff --git a/files/tr/conflicting/learn/css/first_steps/index.html b/files/tr/conflicting/learn/css/first_steps/index.html index a299f6cb69..3e7a954dcc 100644 --- a/files/tr/conflicting/learn/css/first_steps/index.html +++ b/files/tr/conflicting/learn/css/first_steps/index.html @@ -1,9 +1,9 @@ --- title: CSS'e başlarken -slug: Web/Guide/CSS/Getting_started +slug: conflicting/Learn/CSS/First_steps tags: - CSS - - 'CSS:Başlarken' + - CSS:Başlarken - Kitap - Kılavuz - Rehber @@ -13,6 +13,7 @@ tags: - Yeni başlayanlar translation_of: Learn/CSS/First_steps translation_of_original: Web/Guide/CSS/Getting_started +original_slug: Web/Guide/CSS/Getting_started ---

Bu eğitimde Cascading Style Sheets (CSS) 'in söz dizimi ve dilin ana özellikleri ile tanışacaksınız. CSS kullanılarak, tıpkı bir web sayfası gibi, bir belgenin görünümü değiştirilebilir. Bu eğitici size kendi bilgisayarınızda deneyebileceğiniz ve CSS'in günümüz tarayıcılarındaki özellik ve etkilerini görebileceğiniz örnekler sunacaktır.

diff --git a/files/tr/conflicting/web/javascript/reference/global_objects/boolean/index.html b/files/tr/conflicting/web/javascript/reference/global_objects/boolean/index.html index dcb92f48b3..bcb491fe9c 100644 --- a/files/tr/conflicting/web/javascript/reference/global_objects/boolean/index.html +++ b/files/tr/conflicting/web/javascript/reference/global_objects/boolean/index.html @@ -1,8 +1,9 @@ --- title: Boolean.prototype -slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Boolean translation_of: Web/JavaScript/Reference/Global_Objects/Boolean translation_of_original: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Boolean/prototype ---
{{JSRef}}
diff --git a/files/tr/conflicting/web/javascript/reference/global_objects/map/index.html b/files/tr/conflicting/web/javascript/reference/global_objects/map/index.html index 1124f3602e..db9db60531 100644 --- a/files/tr/conflicting/web/javascript/reference/global_objects/map/index.html +++ b/files/tr/conflicting/web/javascript/reference/global_objects/map/index.html @@ -1,8 +1,9 @@ --- title: Map.prototype -slug: Web/JavaScript/Reference/Global_Objects/Map/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Map translation_of: Web/JavaScript/Reference/Global_Objects/Map translation_of_original: Web/JavaScript/Reference/Global_Objects/Map/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Map/prototype ---
{{JSRef}}
diff --git a/files/tr/conflicting/web/javascript/reference/operators/index.html b/files/tr/conflicting/web/javascript/reference/operators/index.html index 04d337601d..08ec51807a 100644 --- a/files/tr/conflicting/web/javascript/reference/operators/index.html +++ b/files/tr/conflicting/web/javascript/reference/operators/index.html @@ -1,11 +1,12 @@ --- title: Arithmetic operators -slug: Web/JavaScript/Reference/Operatörler/Arithmetic_Operators +slug: conflicting/Web/JavaScript/Reference/Operators tags: - Aritmetik Operatörler - JavaScript translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators +original_slug: Web/JavaScript/Reference/Operatörler/Arithmetic_Operators ---
{{jsSidebar("Operators")}}
diff --git a/files/tr/conflicting/web/javascript/reference/operators_3b90ea9617c66e4283e266b64ea7ae4a/index.html b/files/tr/conflicting/web/javascript/reference/operators_3b90ea9617c66e4283e266b64ea7ae4a/index.html index 410107226b..aae13a1ced 100644 --- a/files/tr/conflicting/web/javascript/reference/operators_3b90ea9617c66e4283e266b64ea7ae4a/index.html +++ b/files/tr/conflicting/web/javascript/reference/operators_3b90ea9617c66e4283e266b64ea7ae4a/index.html @@ -1,8 +1,10 @@ --- title: Bitwise operators -slug: Web/JavaScript/Reference/Operatörler/Bitwise_Operators +slug: >- + conflicting/Web/JavaScript/Reference/Operators_3b90ea9617c66e4283e266b64ea7ae4a translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Bitwise_Operators +original_slug: Web/JavaScript/Reference/Operatörler/Bitwise_Operators ---
{{jsSidebar("Operators")}}
diff --git a/files/tr/conflicting/web/javascript/reference/operators_603c79383d36dadbe5083df806de5999/index.html b/files/tr/conflicting/web/javascript/reference/operators_603c79383d36dadbe5083df806de5999/index.html index 8a1e2ea56f..8bebaa5873 100644 --- a/files/tr/conflicting/web/javascript/reference/operators_603c79383d36dadbe5083df806de5999/index.html +++ b/files/tr/conflicting/web/javascript/reference/operators_603c79383d36dadbe5083df806de5999/index.html @@ -1,6 +1,7 @@ --- title: Mantıksal Operatörler -slug: Web/JavaScript/Reference/Operatörler/Mantiksal_Operatorler +slug: >- + conflicting/Web/JavaScript/Reference/Operators_603c79383d36dadbe5083df806de5999 tags: - Değil - JavaScript @@ -11,6 +12,7 @@ tags: - ya da translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Logical_Operators +original_slug: Web/JavaScript/Reference/Operatörler/Mantiksal_Operatorler ---
{{jsSidebar("Operators")}}
diff --git a/files/tr/games/index.html b/files/tr/games/index.html index d3cd6846ab..a782c9e90f 100644 --- a/files/tr/games/index.html +++ b/files/tr/games/index.html @@ -1,7 +1,8 @@ --- title: Oyun geliştirme -slug: Oyunlar +slug: Games translation_of: Games +original_slug: Oyunlar ---
{{GamesSidebar}}
diff --git a/files/tr/glossary/browser/index.html b/files/tr/glossary/browser/index.html index 4eeb5b7d7a..b5c3a91220 100644 --- a/files/tr/glossary/browser/index.html +++ b/files/tr/glossary/browser/index.html @@ -1,7 +1,8 @@ --- title: Web Tarayıcısı -slug: Glossary/Web_Tarayıcısı +slug: Glossary/Browser translation_of: Glossary/Browser +original_slug: Glossary/Web_Tarayıcısı ---

Web tarayıcısı, Kullanıcıların {{Glossary("World Wide Web","Web")}} sunucuları üzerinde bulunan sayfaları görüntülemesi ve sayfadaki {{Glossary("hyperlink","linkler")}} üzerinden başka sayfalara ulaşmasını sağlayan bir programdır.

diff --git a/files/tr/glossary/object/index.html b/files/tr/glossary/object/index.html index 64912aa7e2..8f1d820655 100644 --- a/files/tr/glossary/object/index.html +++ b/files/tr/glossary/object/index.html @@ -1,9 +1,10 @@ --- title: Nesne -slug: Glossary/Nesne +slug: Glossary/Object tags: - nesne translation_of: Glossary/Object +original_slug: Glossary/Nesne ---

Nesne, veri ve bu veriyle çalışmak için gerekli bilgileri içeren bir yapıya karşılık gelir. Nesneler bazen gerçek dünyadaki şeyler, örneğin yarış oyunundaki bir araba veya harita bile olabilir. {{glossary("JavaScript")}}, Java, C++, Python, ve Ruby {{glossary("NYP","nesne yönelimli programlama")}} dillerine örnektir.

diff --git a/files/tr/glossary/oop/index.html b/files/tr/glossary/oop/index.html index 771a8e739d..64754744bf 100644 --- a/files/tr/glossary/oop/index.html +++ b/files/tr/glossary/oop/index.html @@ -1,7 +1,8 @@ --- title: NYP -slug: Glossary/NYP +slug: Glossary/OOP translation_of: Glossary/OOP +original_slug: Glossary/NYP ---

NYP (Nesne Yönelimli Programlama) verilerin nesneler içine kapsüllendiği ve içinde bulunan bileşenlerin nesneyi yönettiği programlama yaklaşımıdır.

diff --git a/files/tr/glossary/protocol/index.html b/files/tr/glossary/protocol/index.html index 6f9f45ff33..7532fb38cf 100644 --- a/files/tr/glossary/protocol/index.html +++ b/files/tr/glossary/protocol/index.html @@ -1,12 +1,13 @@ --- title: Protokol -slug: Glossary/Protokol +slug: Glossary/Protocol tags: - Altyapı - Protokol nedir - Protokoller - Sözlük translation_of: Glossary/Protocol +original_slug: Glossary/Protokol ---

Protokol, verilerin bilgisayar içinde veya bilgisayarlar arasında nasıl alınıp verildiğini tanımlayan kurallar bütünüdür.

diff --git a/files/tr/learn/common_questions/what_are_browser_developer_tools/index.html b/files/tr/learn/common_questions/what_are_browser_developer_tools/index.html index 57a11f27e5..685317a3fa 100644 --- a/files/tr/learn/common_questions/what_are_browser_developer_tools/index.html +++ b/files/tr/learn/common_questions/what_are_browser_developer_tools/index.html @@ -1,7 +1,8 @@ --- title: Tarayıcı geliştirici araçları nelerdir? -slug: Learn/Common_questions/Tarayıcı_geliştirici_araçları_araçları_nelerdir +slug: Learn/Common_questions/What_are_browser_developer_tools translation_of: Learn/Common_questions/What_are_browser_developer_tools +original_slug: Learn/Common_questions/Tarayıcı_geliştirici_araçları_araçları_nelerdir ---
{{IncludeSubnav("/en-US/Learn")}}
diff --git a/files/tr/learn/css/building_blocks/backgrounds_and_borders/index.html b/files/tr/learn/css/building_blocks/backgrounds_and_borders/index.html index 79cd3c0a36..da23bd22ef 100644 --- a/files/tr/learn/css/building_blocks/backgrounds_and_borders/index.html +++ b/files/tr/learn/css/building_blocks/backgrounds_and_borders/index.html @@ -1,6 +1,6 @@ --- title: Arka planlar ve kenarlıklar -slug: Öğren/CSS/CSS_yapi_taslari/Backgrounds_and_borders +slug: Learn/CSS/Building_blocks/Backgrounds_and_borders tags: - Arka Plan - Background @@ -18,6 +18,7 @@ tags: - borders - color translation_of: Learn/CSS/Building_blocks/Backgrounds_and_borders +original_slug: Öğren/CSS/CSS_yapi_taslari/Backgrounds_and_borders ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/cascade_and_inheritance/index.html b/files/tr/learn/css/building_blocks/cascade_and_inheritance/index.html index 2e70a368d6..b5b9796991 100644 --- a/files/tr/learn/css/building_blocks/cascade_and_inheritance/index.html +++ b/files/tr/learn/css/building_blocks/cascade_and_inheritance/index.html @@ -1,6 +1,6 @@ --- title: Kaynak sırası ve miras -slug: Öğren/CSS/CSS_yapi_taslari/Cascade_and_inheritance +slug: Learn/CSS/Building_blocks/Cascade_and_inheritance tags: - Acemi - Art arda @@ -18,6 +18,7 @@ tags: - source order - specificity translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance +original_slug: Öğren/CSS/CSS_yapi_taslari/Cascade_and_inheritance ---
{{LearnSidebar}}{{NextMenu("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/debugging_css/index.html b/files/tr/learn/css/building_blocks/debugging_css/index.html index 05b5c9a4ab..37af423069 100644 --- a/files/tr/learn/css/building_blocks/debugging_css/index.html +++ b/files/tr/learn/css/building_blocks/debugging_css/index.html @@ -1,6 +1,6 @@ --- title: CSS'de hata ayıklamak -slug: Öğren/CSS/CSS_yapi_taslari/Debugging_CSS +slug: Learn/CSS/Building_blocks/Debugging_CSS tags: - Acemi - Beginner @@ -14,6 +14,7 @@ tags: - Learn - source translation_of: Learn/CSS/Building_blocks/Debugging_CSS +original_slug: Öğren/CSS/CSS_yapi_taslari/Debugging_CSS ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks/Organizing", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/handling_different_text_directions/index.html b/files/tr/learn/css/building_blocks/handling_different_text_directions/index.html index 372e9d8f6b..f0f6d6a04b 100644 --- a/files/tr/learn/css/building_blocks/handling_different_text_directions/index.html +++ b/files/tr/learn/css/building_blocks/handling_different_text_directions/index.html @@ -1,6 +1,6 @@ --- title: Farklı metin yönlerini kullanma -slug: Öğren/CSS/CSS_yapi_taslari/Handling_different_text_directions +slug: Learn/CSS/Building_blocks/Handling_different_text_directions tags: - Başlangıç - Beginner @@ -12,6 +12,7 @@ tags: - writing modes - yazma modu translation_of: Learn/CSS/Building_blocks/Handling_different_text_directions +original_slug: Öğren/CSS/CSS_yapi_taslari/Handling_different_text_directions ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/images_media_form_elements/index.html b/files/tr/learn/css/building_blocks/images_media_form_elements/index.html index 44d6747ddd..eeb021ca8c 100644 --- a/files/tr/learn/css/building_blocks/images_media_form_elements/index.html +++ b/files/tr/learn/css/building_blocks/images_media_form_elements/index.html @@ -1,6 +1,6 @@ --- -title: 'Görseller, medya ve form öğeleri' -slug: Öğren/CSS/CSS_yapi_taslari/Images_media_form_elements +title: Görseller, medya ve form öğeleri +slug: Learn/CSS/Building_blocks/Images_media_form_elements tags: - Acemi - Beginner @@ -16,6 +16,7 @@ tags: - form - replaced content translation_of: Learn/CSS/Building_blocks/Images_media_form_elements +original_slug: Öğren/CSS/CSS_yapi_taslari/Images_media_form_elements ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/index.html b/files/tr/learn/css/building_blocks/index.html index e898c37760..8c6a408465 100644 --- a/files/tr/learn/css/building_blocks/index.html +++ b/files/tr/learn/css/building_blocks/index.html @@ -1,6 +1,6 @@ --- title: CSS yapı taşları -slug: Öğren/CSS/CSS_yapi_taslari +slug: Learn/CSS/Building_blocks tags: - Başlangıç - Beginner @@ -10,6 +10,7 @@ tags: - kutu oluşturmak - Öğrenme translation_of: Learn/CSS/Building_blocks +original_slug: Öğren/CSS/CSS_yapi_taslari ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/building_blocks/organizing/index.html b/files/tr/learn/css/building_blocks/organizing/index.html index 383d4db9e5..6fe3ee5d36 100644 --- a/files/tr/learn/css/building_blocks/organizing/index.html +++ b/files/tr/learn/css/building_blocks/organizing/index.html @@ -1,6 +1,6 @@ --- title: CSS planlama -slug: Öğren/CSS/CSS_yapi_taslari/Organizing +slug: Learn/CSS/Building_blocks/Organizing tags: - Acemi - Beginner @@ -19,6 +19,7 @@ tags: - styleguide - yorumlar translation_of: Learn/CSS/Building_blocks/Organizing +original_slug: Öğren/CSS/CSS_yapi_taslari/Organizing ---
{{LearnSidebar}}{{PreviousMenu("Learn/CSS/Building_blocks/Debugging_CSS", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/overflow_tasks/index.html b/files/tr/learn/css/building_blocks/overflow_tasks/index.html index 7ee1ceaad0..d84ac5c022 100644 --- a/files/tr/learn/css/building_blocks/overflow_tasks/index.html +++ b/files/tr/learn/css/building_blocks/overflow_tasks/index.html @@ -1,11 +1,12 @@ --- title: 'Becerilerinizi test edin: Taşma' -slug: Öğren/CSS/CSS_yapi_taslari/Overflow_Tasks +slug: Learn/CSS/Building_blocks/Overflow_Tasks tags: - Acemi - Beginner - CSS translation_of: Learn/CSS/Building_blocks/Overflow_Tasks +original_slug: Öğren/CSS/CSS_yapi_taslari/Overflow_Tasks ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/building_blocks/overflowing_content/index.html b/files/tr/learn/css/building_blocks/overflowing_content/index.html index 5f332ca348..4737025f4f 100644 --- a/files/tr/learn/css/building_blocks/overflowing_content/index.html +++ b/files/tr/learn/css/building_blocks/overflowing_content/index.html @@ -1,6 +1,6 @@ --- title: İçerik taşması -slug: Öğren/CSS/CSS_yapi_taslari/Overflowing_content +slug: Learn/CSS/Building_blocks/Overflowing_content tags: - Acemi - Beginner @@ -13,6 +13,7 @@ tags: - overflow - taşma translation_of: Learn/CSS/Building_blocks/Overflowing_content +original_slug: Öğren/CSS/CSS_yapi_taslari/Overflowing_content ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/sizing_items_in_css/index.html b/files/tr/learn/css/building_blocks/sizing_items_in_css/index.html index 9da820f78a..4794dbebae 100644 --- a/files/tr/learn/css/building_blocks/sizing_items_in_css/index.html +++ b/files/tr/learn/css/building_blocks/sizing_items_in_css/index.html @@ -1,6 +1,6 @@ --- title: CSS'de öğeleri boyutlandırma -slug: Öğren/CSS/CSS_yapi_taslari/Sizing_items_in_CSS +slug: Learn/CSS/Building_blocks/Sizing_items_in_CSS tags: - Acemi - Beginner @@ -20,6 +20,7 @@ tags: - yüzde - İç boyut translation_of: Learn/CSS/Building_blocks/Sizing_items_in_CSS +original_slug: Öğren/CSS/CSS_yapi_taslari/Sizing_items_in_CSS ---

https://wiki.developer.mozilla.org/tr/docs/%C3%96%C4%9Fren/CSS/CSS_yapi_taslari/Sizing_items_in_CSS$edit

diff --git a/files/tr/learn/css/building_blocks/sizing_tasks/index.html b/files/tr/learn/css/building_blocks/sizing_tasks/index.html index ffccae6a72..a37b752372 100644 --- a/files/tr/learn/css/building_blocks/sizing_tasks/index.html +++ b/files/tr/learn/css/building_blocks/sizing_tasks/index.html @@ -1,6 +1,6 @@ --- title: 'Becerilerinizi test edin: Boyutlandırma' -slug: Öğren/CSS/CSS_yapi_taslari/Sizing_tasks +slug: Learn/CSS/Building_blocks/Sizing_tasks tags: - Acemi - Beginner @@ -8,6 +8,7 @@ tags: - Example - Örnek translation_of: Learn/CSS/Building_blocks/Sizing_tasks +original_slug: Öğren/CSS/CSS_yapi_taslari/Sizing_tasks ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/building_blocks/styling_tables/index.html b/files/tr/learn/css/building_blocks/styling_tables/index.html index c7fb4335d7..d6983c73f9 100644 --- a/files/tr/learn/css/building_blocks/styling_tables/index.html +++ b/files/tr/learn/css/building_blocks/styling_tables/index.html @@ -1,6 +1,6 @@ --- title: Tabloları şekillendirme -slug: Öğren/CSS/CSS_yapi_taslari/Styling_tables +slug: Learn/CSS/Building_blocks/Styling_tables tags: - Acemi - Article @@ -17,6 +17,7 @@ tags: - Tables - Tablo translation_of: Learn/CSS/Building_blocks/Styling_tables +original_slug: Öğren/CSS/CSS_yapi_taslari/Styling_tables ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/building_blocks/test_your_skills_backgrounds_and_borders/index.html b/files/tr/learn/css/building_blocks/test_your_skills_backgrounds_and_borders/index.html index b144c19470..94fca5a5ce 100644 --- a/files/tr/learn/css/building_blocks/test_your_skills_backgrounds_and_borders/index.html +++ b/files/tr/learn/css/building_blocks/test_your_skills_backgrounds_and_borders/index.html @@ -1,6 +1,6 @@ --- title: 'Becerilerinizi test edin: Arka Planlar ve Kenarlıklar' -slug: Öğren/CSS/CSS_yapi_taslari/Test_your_skills_backgrounds_and_borders +slug: Learn/CSS/Building_blocks/Test_your_skills_backgrounds_and_borders tags: - Arka Plan - Assessment @@ -15,6 +15,7 @@ tags: - beceri testi - borders translation_of: Learn/CSS/Building_blocks/Test_your_skills_backgrounds_and_borders +original_slug: Öğren/CSS/CSS_yapi_taslari/Test_your_skills_backgrounds_and_borders ---

Bu beceri testinin amacı, önceki derste öğrendiğiniz becerileri kullanarak, CSS arka planları ve kenarlıklar üzerinde çalışmanızı sağlamaktır.

diff --git a/files/tr/learn/css/building_blocks/the_box_model/index.html b/files/tr/learn/css/building_blocks/the_box_model/index.html index 016c021985..38ac0e3b37 100644 --- a/files/tr/learn/css/building_blocks/the_box_model/index.html +++ b/files/tr/learn/css/building_blocks/the_box_model/index.html @@ -1,6 +1,6 @@ --- title: Kutu Modeli -slug: Öğren/CSS/CSS_yapi_taslari/The_box_model +slug: Learn/CSS/Building_blocks/The_box_model tags: - Başlangıç - Beginner @@ -18,6 +18,7 @@ tags: - margin - padding translation_of: Learn/CSS/Building_blocks/The_box_model +original_slug: Öğren/CSS/CSS_yapi_taslari/The_box_model ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/values_and_units/index.html b/files/tr/learn/css/building_blocks/values_and_units/index.html index 9d42ba1317..50ce4de9f7 100644 --- a/files/tr/learn/css/building_blocks/values_and_units/index.html +++ b/files/tr/learn/css/building_blocks/values_and_units/index.html @@ -1,6 +1,6 @@ --- title: CSS değerleri ve birimleri -slug: Öğren/CSS/CSS_yapi_taslari/Values_and_units +slug: Learn/CSS/Building_blocks/Values_and_units tags: - Acemi - Beginner @@ -26,6 +26,7 @@ tags: - values - yüzde translation_of: Learn/CSS/Building_blocks/Values_and_units +original_slug: Öğren/CSS/CSS_yapi_taslari/Values_and_units ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks")}}
diff --git a/files/tr/learn/css/building_blocks/values_tasks/index.html b/files/tr/learn/css/building_blocks/values_tasks/index.html index 138fd5a290..50d9bac560 100644 --- a/files/tr/learn/css/building_blocks/values_tasks/index.html +++ b/files/tr/learn/css/building_blocks/values_tasks/index.html @@ -1,6 +1,6 @@ --- title: 'Becerilerinizi test edin: değerler ve birimler' -slug: Öğren/CSS/CSS_yapi_taslari/Values_tasks +slug: Learn/CSS/Building_blocks/Values_tasks tags: - Acemi - Beginner @@ -8,6 +8,7 @@ tags: - Example - Örnek translation_of: Learn/CSS/Building_blocks/Values_tasks +original_slug: Öğren/CSS/CSS_yapi_taslari/Values_tasks ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/building_blocks/writing_modes_tasks/index.html b/files/tr/learn/css/building_blocks/writing_modes_tasks/index.html index a28339307f..63c0f98f36 100644 --- a/files/tr/learn/css/building_blocks/writing_modes_tasks/index.html +++ b/files/tr/learn/css/building_blocks/writing_modes_tasks/index.html @@ -1,11 +1,12 @@ --- title: 'Becerilerinizi test edin: Yazma Modları ve Mantıksal Özellikler' -slug: Öğren/CSS/CSS_yapi_taslari/Writing_Modes_Tasks +slug: Learn/CSS/Building_blocks/Writing_Modes_Tasks tags: - Başlangıç - Beginner - CSS translation_of: Learn/CSS/Building_blocks/Writing_Modes_Tasks +original_slug: Öğren/CSS/CSS_yapi_taslari/Writing_Modes_Tasks ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/css_layout/index.html b/files/tr/learn/css/css_layout/index.html index 1ffe9c03cb..33c22befe6 100644 --- a/files/tr/learn/css/css_layout/index.html +++ b/files/tr/learn/css/css_layout/index.html @@ -1,6 +1,6 @@ --- title: CSS layout -slug: Öğren/CSS/CSS_layout +slug: Learn/CSS/CSS_layout tags: - Beginner - CSS @@ -18,6 +18,7 @@ tags: - flexbox - float translation_of: Learn/CSS/CSS_layout +original_slug: Öğren/CSS/CSS_layout ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/css_layout/introduction/index.html b/files/tr/learn/css/css_layout/introduction/index.html index 396d9459f6..ba84909907 100644 --- a/files/tr/learn/css/css_layout/introduction/index.html +++ b/files/tr/learn/css/css_layout/introduction/index.html @@ -1,7 +1,8 @@ --- title: CSS mizanpajına giriş -slug: Öğren/CSS/CSS_layout/Introduction +slug: Learn/CSS/CSS_layout/Introduction translation_of: Learn/CSS/CSS_layout/Introduction +original_slug: Öğren/CSS/CSS_layout/Introduction ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/first_steps/getting_started/index.html b/files/tr/learn/css/first_steps/getting_started/index.html index b3d18a095a..440bbd4f79 100644 --- a/files/tr/learn/css/first_steps/getting_started/index.html +++ b/files/tr/learn/css/first_steps/getting_started/index.html @@ -1,6 +1,6 @@ --- title: CSS'e başlarken -slug: Öğren/CSS/Ilk_adimlar/Getting_started +slug: Learn/CSS/First_steps/Getting_started tags: - Acemi - Beginner @@ -20,6 +20,7 @@ tags: - seçiciler - state translation_of: Learn/CSS/First_steps/Getting_started +original_slug: Öğren/CSS/Ilk_adimlar/Getting_started ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/first_steps/how_css_is_structured/index.html b/files/tr/learn/css/first_steps/how_css_is_structured/index.html index 4a40f8481d..c0bea7bf98 100644 --- a/files/tr/learn/css/first_steps/how_css_is_structured/index.html +++ b/files/tr/learn/css/first_steps/how_css_is_structured/index.html @@ -1,6 +1,6 @@ --- title: CSS nasıl yapılandırılır -slug: Öğren/CSS/Ilk_adimlar/How_CSS_is_structured +slug: Learn/CSS/First_steps/How_CSS_is_structured tags: - Acemi - Beginner @@ -24,6 +24,7 @@ tags: - whitespace - yorumlar translation_of: Learn/CSS/First_steps/How_CSS_is_structured +original_slug: Öğren/CSS/Ilk_adimlar/How_CSS_is_structured ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/first_steps/how_css_works/index.html b/files/tr/learn/css/first_steps/how_css_works/index.html index c2cb95aa43..434e8f3a84 100644 --- a/files/tr/learn/css/first_steps/how_css_works/index.html +++ b/files/tr/learn/css/first_steps/how_css_works/index.html @@ -1,6 +1,6 @@ --- title: CSS nasıl çalışır -slug: Öğren/CSS/Ilk_adimlar/CSS_nasil_calisir +slug: Learn/CSS/First_steps/How_CSS_works tags: - Başlangıç - Beginner @@ -9,6 +9,7 @@ tags: - Eğitim - Learn translation_of: Learn/CSS/First_steps/How_CSS_works +original_slug: Öğren/CSS/Ilk_adimlar/CSS_nasil_calisir ---

{{LearnSidebar}}
{{PreviousMenuNext("Learn/CSS/First_steps/How_CSS_is_structured", "Learn/CSS/First_steps/Using_your_new_knowledge", "Learn/CSS/First_steps")}}

diff --git a/files/tr/learn/css/first_steps/index.html b/files/tr/learn/css/first_steps/index.html index eca80e4e76..7a7b0f691c 100644 --- a/files/tr/learn/css/first_steps/index.html +++ b/files/tr/learn/css/first_steps/index.html @@ -1,6 +1,6 @@ --- title: CSS'e ilk adım -slug: Öğren/CSS/Ilk_adimlar +slug: Learn/CSS/First_steps tags: - Acemi - Beginner @@ -12,6 +12,7 @@ tags: - first steps - İlk Adım translation_of: Learn/CSS/First_steps +original_slug: Öğren/CSS/Ilk_adimlar ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/first_steps/using_your_new_knowledge/index.html b/files/tr/learn/css/first_steps/using_your_new_knowledge/index.html index 3282953c36..480eb8f7c5 100644 --- a/files/tr/learn/css/first_steps/using_your_new_knowledge/index.html +++ b/files/tr/learn/css/first_steps/using_your_new_knowledge/index.html @@ -1,6 +1,6 @@ --- title: Öğrendiklerini uygula -slug: Öğren/CSS/Ilk_adimlar/Ogrendiklerinizi_Uygulayın +slug: Learn/CSS/First_steps/Using_your_new_knowledge tags: - Acemi - Başlangıç @@ -11,6 +11,7 @@ tags: - Playground - oyun alanı translation_of: Learn/CSS/First_steps/Using_your_new_knowledge +original_slug: Öğren/CSS/Ilk_adimlar/Ogrendiklerinizi_Uygulayın ---

{{LearnSidebar}}{{PreviousMenu("Learn/CSS/First_steps/How_CSS_works", "Learn/CSS/First_steps")}}

diff --git a/files/tr/learn/css/first_steps/what_is_css/index.html b/files/tr/learn/css/first_steps/what_is_css/index.html index 8433d2e196..1afe811fc0 100644 --- a/files/tr/learn/css/first_steps/what_is_css/index.html +++ b/files/tr/learn/css/first_steps/what_is_css/index.html @@ -1,6 +1,6 @@ --- title: CSS Nedir? -slug: Öğren/CSS/Ilk_adimlar/CSS_Nedir +slug: Learn/CSS/First_steps/What_is_CSS tags: - Beginner - CSS @@ -15,6 +15,7 @@ tags: - Specifications - Syntax translation_of: Learn/CSS/First_steps/What_is_CSS +original_slug: Öğren/CSS/Ilk_adimlar/CSS_Nedir ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/index.html b/files/tr/learn/css/index.html index 0b6e8df673..27330e8df2 100644 --- a/files/tr/learn/css/index.html +++ b/files/tr/learn/css/index.html @@ -1,6 +1,6 @@ --- title: CSS kullanarak HTML şekillendirmeyi öğrenin -slug: Öğren/CSS +slug: Learn/CSS tags: - Başlangıç - Beginner @@ -18,6 +18,7 @@ tags: - length - specificity translation_of: Learn/CSS +original_slug: Öğren/CSS ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/styling_text/fundamentals/index.html b/files/tr/learn/css/styling_text/fundamentals/index.html index 0bf22d6921..eba906eeca 100644 --- a/files/tr/learn/css/styling_text/fundamentals/index.html +++ b/files/tr/learn/css/styling_text/fundamentals/index.html @@ -1,6 +1,6 @@ --- title: Temel metin ve yazı tipi biçimi -slug: Öğren/CSS/Styling_text/Fundamentals +slug: Learn/CSS/Styling_text/Fundamentals tags: - Acemi - Aile @@ -26,6 +26,7 @@ tags: - spacing - weight translation_of: Learn/CSS/Styling_text/Fundamentals +original_slug: Öğren/CSS/Styling_text/Fundamentals ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/styling_text/index.html b/files/tr/learn/css/styling_text/index.html index 6e7c8c3500..5afce7c21f 100644 --- a/files/tr/learn/css/styling_text/index.html +++ b/files/tr/learn/css/styling_text/index.html @@ -1,6 +1,6 @@ --- title: Metni stilini belirleme -slug: Öğren/CSS/Styling_text +slug: Learn/CSS/Styling_text tags: - Acemi - Bağlantılar @@ -27,6 +27,7 @@ tags: - shadow - web fonts translation_of: Learn/CSS/Styling_text +original_slug: Öğren/CSS/Styling_text ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/styling_text/styling_links/index.html b/files/tr/learn/css/styling_text/styling_links/index.html index 3cf6997aa5..d707f4f5bb 100644 --- a/files/tr/learn/css/styling_text/styling_links/index.html +++ b/files/tr/learn/css/styling_text/styling_links/index.html @@ -1,6 +1,6 @@ --- title: Bağlantıları şekillendirmek -slug: Öğren/CSS/Styling_text/Styling_links +slug: Learn/CSS/Styling_text/Styling_links tags: - Article - Beginner @@ -15,6 +15,7 @@ tags: - menus - tabs translation_of: Learn/CSS/Styling_text/Styling_links +original_slug: Öğren/CSS/Styling_text/Styling_links ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/styling_text/styling_lists/index.html b/files/tr/learn/css/styling_text/styling_lists/index.html index b9690f6d23..7bdd698452 100644 --- a/files/tr/learn/css/styling_text/styling_lists/index.html +++ b/files/tr/learn/css/styling_text/styling_lists/index.html @@ -1,6 +1,6 @@ --- title: Listeleri Şekillendirmek -slug: Öğren/CSS/Styling_text/Styling_lists +slug: Learn/CSS/Styling_text/Styling_lists tags: - Acemi - Article @@ -19,6 +19,7 @@ tags: - lists - Şekillendirme translation_of: Learn/CSS/Styling_text/Styling_lists +original_slug: Öğren/CSS/Styling_text/Styling_lists ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/styling_text/typesetting_a_homepage/index.html b/files/tr/learn/css/styling_text/typesetting_a_homepage/index.html index 0d5c95314b..848a23a45f 100644 --- a/files/tr/learn/css/styling_text/typesetting_a_homepage/index.html +++ b/files/tr/learn/css/styling_text/typesetting_a_homepage/index.html @@ -1,6 +1,6 @@ --- title: Bir okulun ana sayfasını düzenlemek -slug: Öğren/CSS/Styling_text/Typesetting_a_homepage +slug: Learn/CSS/Styling_text/Typesetting_a_homepage tags: - Acemi - Assessment @@ -19,6 +19,7 @@ tags: - list - web font translation_of: Learn/CSS/Styling_text/Typesetting_a_homepage +original_slug: Öğren/CSS/Styling_text/Typesetting_a_homepage ---
{{LearnSidebar}}
diff --git a/files/tr/learn/css/styling_text/web_fonts/index.html b/files/tr/learn/css/styling_text/web_fonts/index.html index cf13b6533a..05b000659d 100644 --- a/files/tr/learn/css/styling_text/web_fonts/index.html +++ b/files/tr/learn/css/styling_text/web_fonts/index.html @@ -1,6 +1,6 @@ --- title: Web Yazı Tipleri -slug: Öğren/CSS/Styling_text/Web_fonts +slug: Learn/CSS/Styling_text/Web_fonts tags: - '@font-face' - Article @@ -16,6 +16,7 @@ tags: - font-family - web fonts translation_of: Learn/CSS/Styling_text/Web_fonts +original_slug: Öğren/CSS/Styling_text/Web_fonts ---
{{LearnSidebar}}
diff --git a/files/tr/learn/front-end_web_developer/index.html b/files/tr/learn/front-end_web_developer/index.html index 2adf1624e7..c055ec1e31 100644 --- a/files/tr/learn/front-end_web_developer/index.html +++ b/files/tr/learn/front-end_web_developer/index.html @@ -1,6 +1,6 @@ --- title: Front-end web developer -slug: Öğren/Front-end_web_developer +slug: Learn/Front-end_web_developer tags: - Araçlar - Başlangıç @@ -11,6 +11,7 @@ tags: - Ön Uç - Öğrenme translation_of: Learn/Front-end_web_developer +original_slug: Öğren/Front-end_web_developer ---

{{öğrenme kenarı}}

diff --git a/files/tr/learn/getting_started_with_the_web/how_the_web_works/index.html b/files/tr/learn/getting_started_with_the_web/how_the_web_works/index.html index d7f26f50bf..4b706170ec 100644 --- a/files/tr/learn/getting_started_with_the_web/how_the_web_works/index.html +++ b/files/tr/learn/getting_started_with_the_web/how_the_web_works/index.html @@ -1,7 +1,8 @@ --- title: How the Web works -slug: Öğren/Getting_started_with_the_web/How_the_Web_works +slug: Learn/Getting_started_with_the_web/How_the_Web_works translation_of: Learn/Getting_started_with_the_web/How_the_Web_works +original_slug: Öğren/Getting_started_with_the_web/How_the_Web_works ---
{{LearnSidebar}}
diff --git a/files/tr/learn/getting_started_with_the_web/index.html b/files/tr/learn/getting_started_with_the_web/index.html index de4a8c94f4..502ad9648c 100644 --- a/files/tr/learn/getting_started_with_the_web/index.html +++ b/files/tr/learn/getting_started_with_the_web/index.html @@ -1,7 +1,8 @@ --- title: Web ile başlarken -slug: Öğren/Getting_started_with_the_web +slug: Learn/Getting_started_with_the_web translation_of: Learn/Getting_started_with_the_web +original_slug: Öğren/Getting_started_with_the_web ---
{{LearnSidebar}}
diff --git a/files/tr/learn/getting_started_with_the_web/installing_basic_software/index.html b/files/tr/learn/getting_started_with_the_web/installing_basic_software/index.html index df366e2761..b6bd4c9150 100644 --- a/files/tr/learn/getting_started_with_the_web/installing_basic_software/index.html +++ b/files/tr/learn/getting_started_with_the_web/installing_basic_software/index.html @@ -1,12 +1,13 @@ --- title: Installing basic software -slug: Öğren/Getting_started_with_the_web/Installing_basic_software +slug: Learn/Getting_started_with_the_web/Installing_basic_software tags: - Aletler - Başlangıç - Yüklemeler - Öğrenme translation_of: Learn/Getting_started_with_the_web/Installing_basic_software +original_slug: Öğren/Getting_started_with_the_web/Installing_basic_software ---
{{LearnSidebar}}
diff --git a/files/tr/learn/getting_started_with_the_web/javascript_basics/index.html b/files/tr/learn/getting_started_with_the_web/javascript_basics/index.html index 3d52dfbb5b..0bfe47464d 100644 --- a/files/tr/learn/getting_started_with_the_web/javascript_basics/index.html +++ b/files/tr/learn/getting_started_with_the_web/javascript_basics/index.html @@ -1,7 +1,8 @@ --- title: JavaScript'in Temelleri -slug: Öğren/Getting_started_with_the_web/JavaScript_basics +slug: Learn/Getting_started_with_the_web/JavaScript_basics translation_of: Learn/Getting_started_with_the_web/JavaScript_basics +original_slug: Öğren/Getting_started_with_the_web/JavaScript_basics ---
{{LearnSidebar}}
diff --git a/files/tr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html b/files/tr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html index 15e286ef50..7b7400f21f 100644 --- a/files/tr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html +++ b/files/tr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html @@ -1,7 +1,8 @@ --- title: Web siteniz nasıl görünecek -slug: Öğren/Getting_started_with_the_web/Web_siteniz_nasil_gorunecek +slug: Learn/Getting_started_with_the_web/What_will_your_website_look_like translation_of: Learn/Getting_started_with_the_web/What_will_your_website_look_like +original_slug: Öğren/Getting_started_with_the_web/Web_siteniz_nasil_gorunecek ---
{{LearnSidebar}}
diff --git a/files/tr/learn/html/index.html b/files/tr/learn/html/index.html index 3d9a352661..959b1aea51 100644 --- a/files/tr/learn/html/index.html +++ b/files/tr/learn/html/index.html @@ -1,6 +1,6 @@ --- title: Web'i HTML ile oluşturma -slug: Öğren/HTML +slug: Learn/HTML tags: - Başlangıç - HTML @@ -10,6 +10,7 @@ tags: - Yeni başlayan - Öğrenmek translation_of: Learn/HTML +original_slug: Öğren/HTML ---
{{LearnSidebar}}
diff --git a/files/tr/learn/html/introduction_to_html/getting_started/index.html b/files/tr/learn/html/introduction_to_html/getting_started/index.html index f88ec96f22..719024bdc3 100644 --- a/files/tr/learn/html/introduction_to_html/getting_started/index.html +++ b/files/tr/learn/html/introduction_to_html/getting_started/index.html @@ -1,7 +1,8 @@ --- title: HTML ile Başlarken -slug: Öğren/HTML/Introduction_to_HTML/Başlangıç +slug: Learn/HTML/Introduction_to_HTML/Getting_started translation_of: Learn/HTML/Introduction_to_HTML/Getting_started +original_slug: Öğren/HTML/Introduction_to_HTML/Başlangıç ---
{{LearnSidebar}}
diff --git a/files/tr/learn/html/introduction_to_html/index.html b/files/tr/learn/html/introduction_to_html/index.html index ba1a6c4397..35db9e3700 100644 --- a/files/tr/learn/html/introduction_to_html/index.html +++ b/files/tr/learn/html/introduction_to_html/index.html @@ -1,11 +1,12 @@ --- title: Introduction to HTML -slug: Öğren/HTML/Introduction_to_HTML +slug: Learn/HTML/Introduction_to_HTML tags: - HTML - NeedsContent - NeedsUpdate translation_of: Learn/HTML/Introduction_to_HTML +original_slug: Öğren/HTML/Introduction_to_HTML ---

HTML Özünde, bir belgede farklı anlamlar vermek için metin parçalarına uygulanabilen öğelerden oluşan oldukça basit bir dildir (bir paragraf mı? Madde işaretli bir liste mi? Masanın bir parçası mı?), bir belgeyi mantıksal bölümlere yapılandırın (bir başlığı var mı? Üç içerik sütunu mu? Navigasyon menüsü mü?) ve resim ve video gibi içeriği bir sayfaya gömün. Bu modül, bunlardan ilk ikisini tanıtacak ve HTML'yi anlamak için bilmeniz gereken temel kavramları ve sözdizimini tanıtacaktır.

diff --git a/files/tr/learn/index.html b/files/tr/learn/index.html index 2aece44072..466edae5b2 100644 --- a/files/tr/learn/index.html +++ b/files/tr/learn/index.html @@ -1,9 +1,10 @@ --- title: Web Programlama Öğren -slug: Öğren +slug: Learn tags: - öğren translation_of: Learn +original_slug: Öğren ---

{{LearnSidebar}}

diff --git a/files/tr/learn/javascript/first_steps/a_first_splash/index.html b/files/tr/learn/javascript/first_steps/a_first_splash/index.html index 8cab0bbcf2..1ef591995a 100644 --- a/files/tr/learn/javascript/first_steps/a_first_splash/index.html +++ b/files/tr/learn/javascript/first_steps/a_first_splash/index.html @@ -1,7 +1,8 @@ --- title: Javascript'e ilk giriş -slug: Öğren/JavaScript/First_steps/Javascripte_giris +slug: Learn/JavaScript/First_steps/A_first_splash translation_of: Learn/JavaScript/First_steps/A_first_splash +original_slug: Öğren/JavaScript/First_steps/Javascripte_giris ---
{{LearnSidebar}}
diff --git a/files/tr/learn/javascript/first_steps/index.html b/files/tr/learn/javascript/first_steps/index.html index cde2569c69..3c6821d3e6 100644 --- a/files/tr/learn/javascript/first_steps/index.html +++ b/files/tr/learn/javascript/first_steps/index.html @@ -1,9 +1,10 @@ --- title: JavaScript First Steps -slug: Öğren/JavaScript/First_steps +slug: Learn/JavaScript/First_steps tags: - türkçe translation_of: Learn/JavaScript/First_steps +original_slug: Öğren/JavaScript/First_steps ---
{{LearnSidebar}}
diff --git a/files/tr/learn/javascript/index.html b/files/tr/learn/javascript/index.html index 665e95cc85..902b39d8c4 100644 --- a/files/tr/learn/javascript/index.html +++ b/files/tr/learn/javascript/index.html @@ -1,7 +1,8 @@ --- title: JavaScript -slug: Öğren/JavaScript +slug: Learn/JavaScript translation_of: Learn/JavaScript +original_slug: Öğren/JavaScript ---
{{LearnSidebar}}
diff --git a/files/tr/learn/javascript/objects/basics/index.html b/files/tr/learn/javascript/objects/basics/index.html index bf6e7892e0..e0ba47ca07 100644 --- a/files/tr/learn/javascript/objects/basics/index.html +++ b/files/tr/learn/javascript/objects/basics/index.html @@ -1,7 +1,8 @@ --- title: JavaScript object basics -slug: Öğren/JavaScript/Objeler/Basics +slug: Learn/JavaScript/Objects/Basics translation_of: Learn/JavaScript/Objects/Basics +original_slug: Öğren/JavaScript/Objeler/Basics ---
{{LearnSidebar}}
diff --git a/files/tr/learn/javascript/objects/index.html b/files/tr/learn/javascript/objects/index.html index d90a7e81a4..2dd6a7a9e1 100644 --- a/files/tr/learn/javascript/objects/index.html +++ b/files/tr/learn/javascript/objects/index.html @@ -1,6 +1,6 @@ --- title: Javascript Nesnelerine Giriş -slug: Öğren/JavaScript/Objeler +slug: Learn/JavaScript/Objects tags: - Başlangıç - Değerlendirme @@ -13,6 +13,7 @@ tags: - Yeni başlayan - öğren translation_of: Learn/JavaScript/Objects +original_slug: Öğren/JavaScript/Objeler ---
{{LearnSidebar}}
diff --git a/files/tr/learn/server-side/django/authentication/index.html b/files/tr/learn/server-side/django/authentication/index.html index 516efc7d1d..d7f0ccc57d 100644 --- a/files/tr/learn/server-side/django/authentication/index.html +++ b/files/tr/learn/server-side/django/authentication/index.html @@ -1,7 +1,8 @@ --- title: 'Django Tutorial - 8. Bölüm: Kullanıcı doğrulama ve izinler' -slug: Öğren/Server-side/Django/Authentication +slug: Learn/Server-side/Django/Authentication translation_of: Learn/Server-side/Django/Authentication +original_slug: Öğren/Server-side/Django/Authentication ---
{{LearnSidebar}}
diff --git a/files/tr/learn/server-side/django/index.html b/files/tr/learn/server-side/django/index.html index d4a8864ffb..e86962900e 100644 --- a/files/tr/learn/server-side/django/index.html +++ b/files/tr/learn/server-side/django/index.html @@ -1,6 +1,6 @@ --- title: Django Web Framework (Python) -slug: Öğren/Server-side/Django +slug: Learn/Server-side/Django tags: - Beginner - CodingScripting @@ -12,6 +12,7 @@ tags: - TopicStub - django translation_of: Learn/Server-side/Django +original_slug: Öğren/Server-side/Django ---

{{draft("Contact Hamish Willee via ~~chrisdavidmills if you have any questions about this work.")}}

diff --git a/files/tr/learn/server-side/django/sessions/index.html b/files/tr/learn/server-side/django/sessions/index.html index 594cab9f47..9394b62737 100644 --- a/files/tr/learn/server-side/django/sessions/index.html +++ b/files/tr/learn/server-side/django/sessions/index.html @@ -1,6 +1,6 @@ --- title: 'Django Tutorial Part 7: Sessions framework' -slug: Öğren/Server-side/Django/Sessions +slug: Learn/Server-side/Django/Sessions tags: - Başlangıç - CondingScripting @@ -19,6 +19,7 @@ tags: - Öğretici - öğren translation_of: Learn/Server-side/Django/Sessions +original_slug: Öğren/Server-side/Django/Sessions ---
{{LearnSidebar}}
diff --git a/files/tr/learn/server-side/django/skeleton_website/index.html b/files/tr/learn/server-side/django/skeleton_website/index.html index 4301d37ce5..1c617bcc75 100644 --- a/files/tr/learn/server-side/django/skeleton_website/index.html +++ b/files/tr/learn/server-side/django/skeleton_website/index.html @@ -1,7 +1,8 @@ --- title: 'Django Tutorial 2. Bölüm: Websitesi İskeleti Oluşturmak' -slug: Öğren/Server-side/Django/website_iskeleti +slug: Learn/Server-side/Django/skeleton_website translation_of: Learn/Server-side/Django/skeleton_website +original_slug: Öğren/Server-side/Django/website_iskeleti ---
{{LearnSidebar}}
diff --git a/files/tr/learn/server-side/index.html b/files/tr/learn/server-side/index.html index ad515e95a9..10a879b683 100644 --- a/files/tr/learn/server-side/index.html +++ b/files/tr/learn/server-side/index.html @@ -1,6 +1,6 @@ --- title: Server-side website programming -slug: Öğren/Server-side +slug: Learn/Server-side tags: - Beginner - CodingScripting @@ -13,6 +13,7 @@ tags: - Topic - TopicStub translation_of: Learn/Server-side +original_slug: Öğren/Server-side ---

{{draft("Contact Hamish Willee via ~~chrisdavidmills if you have any questions about this work.")}}

diff --git a/files/tr/mdn/about/index.html b/files/tr/mdn/about/index.html index b3b9e67a31..23852801e3 100644 --- a/files/tr/mdn/about/index.html +++ b/files/tr/mdn/about/index.html @@ -1,12 +1,13 @@ --- title: MDN Web Docs Hakkında -slug: MDN/Hakkinda +slug: MDN/About tags: - Dokümantasyon - Lisanslar - Telif Hakkı - Topluluk translation_of: MDN/About +original_slug: MDN/Hakkinda ---
{{MDNSidebar}}
diff --git a/files/tr/mdn/at_ten/index.html b/files/tr/mdn/at_ten/index.html index ee5981fb1d..2f7446ff3b 100644 --- a/files/tr/mdn/at_ten/index.html +++ b/files/tr/mdn/at_ten/index.html @@ -1,7 +1,8 @@ --- title: MDN 10'unda -slug: MDN_onunda +slug: MDN/At_ten translation_of: MDN_at_ten +original_slug: MDN_onunda ---
İnternetinizin 10 yıldır belgelenmesini kutlayın.
diff --git a/files/tr/mdn/contribute/howto/create_and_edit_pages/index.html b/files/tr/mdn/contribute/howto/create_and_edit_pages/index.html index 7986219ff5..ee54c74064 100644 --- a/files/tr/mdn/contribute/howto/create_and_edit_pages/index.html +++ b/files/tr/mdn/contribute/howto/create_and_edit_pages/index.html @@ -1,11 +1,12 @@ --- title: Sayfalar nasıl oluşturulur ve düzenlenir -slug: MDN/Contribute/Howto/Sayfalar_nasil_olusturulur_duzenlenir +slug: MDN/Contribute/Howto/Create_and_edit_pages tags: - Başlangıç - Giriş - Klavuz - Nasıl translation_of: MDN/Contribute/Howto/Create_and_edit_pages +original_slug: MDN/Contribute/Howto/Sayfalar_nasil_olusturulur_duzenlenir ---
bilgisayar tamircisi
diff --git a/files/tr/mdn/tools/kumascript/troubleshooting/index.html b/files/tr/mdn/tools/kumascript/troubleshooting/index.html index c910d90ae0..87b7e85fe3 100644 --- a/files/tr/mdn/tools/kumascript/troubleshooting/index.html +++ b/files/tr/mdn/tools/kumascript/troubleshooting/index.html @@ -1,6 +1,6 @@ --- title: Troubleshooting KumaScript errors -slug: MDN/Kuma/Troubleshooting_KumaScript_errors +slug: MDN/Tools/KumaScript/Troubleshooting tags: - HRCTelekom - KumaScript @@ -8,6 +8,7 @@ tags: - MDN Meta - sabır translation_of: MDN/Tools/KumaScript/Troubleshooting +original_slug: MDN/Kuma/Troubleshooting_KumaScript_errors ---
{{MDNSidebar}} 
diff --git a/files/tr/mdn/yari/index.html b/files/tr/mdn/yari/index.html index d08ef04685..e6bf90982e 100644 --- a/files/tr/mdn/yari/index.html +++ b/files/tr/mdn/yari/index.html @@ -1,6 +1,6 @@ --- title: 'Kuma: MDN''s wiki platform' -slug: MDN/Kuma +slug: MDN/Yari tags: - Kuma - Landing @@ -8,6 +8,7 @@ tags: - NeedsTranslation - TopicStub translation_of: MDN/Kuma +original_slug: MDN/Kuma ---
{{MDNSidebar}}{{IncludeSubnav("/en-US/docs/MDN")}}
diff --git a/files/tr/mozilla/add-ons/index.html b/files/tr/mozilla/add-ons/index.html index 528c0ed7cf..f754e3a366 100644 --- a/files/tr/mozilla/add-ons/index.html +++ b/files/tr/mozilla/add-ons/index.html @@ -1,12 +1,13 @@ --- title: Eklentiler -slug: Mozilla/Eklentiler +slug: Mozilla/Add-ons tags: - Eklentiler - Landing - Mozilla - uzantılar translation_of: Mozilla/Add-ons +original_slug: Mozilla/Eklentiler ---
Mozilla uygulamalarını değiştirin ve genişletin.
diff --git a/files/tr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html b/files/tr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html index ee47f9114c..3f4af92620 100644 --- a/files/tr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html +++ b/files/tr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html @@ -1,6 +1,6 @@ --- title: Extending the developer tools -slug: Mozilla/Eklentiler/WebExtensions/Extending_the_developer_tools +slug: Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools tags: - DevTools - Eklenti @@ -10,6 +10,7 @@ tags: - WebExtensions - İhtiyaçları Ayrıcalıkları translation_of: Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools +original_slug: Mozilla/Eklentiler/WebExtensions/Extending_the_developer_tools ---
{{AddonSidebar}}
diff --git a/files/tr/mozilla/add-ons/webextensions/index.html b/files/tr/mozilla/add-ons/webextensions/index.html index 91c91735f2..c4a3cfc16a 100644 --- a/files/tr/mozilla/add-ons/webextensions/index.html +++ b/files/tr/mozilla/add-ons/webextensions/index.html @@ -1,11 +1,12 @@ --- title: Tarayıcı uzantıları -slug: Mozilla/Eklentiler/WebExtensions +slug: Mozilla/Add-ons/WebExtensions tags: - Eklentiler - WebExtensions - İniş translation_of: Mozilla/Add-ons/WebExtensions +original_slug: Mozilla/Eklentiler/WebExtensions ---
{{AddonSidebar}}
diff --git a/files/tr/mozilla/add-ons/webextensions/user_interface/index.html b/files/tr/mozilla/add-ons/webextensions/user_interface/index.html index 0c181eec6a..b7c071d37a 100644 --- a/files/tr/mozilla/add-ons/webextensions/user_interface/index.html +++ b/files/tr/mozilla/add-ons/webextensions/user_interface/index.html @@ -1,11 +1,12 @@ --- title: User interface -slug: Mozilla/Eklentiler/WebExtensions/user_interface +slug: Mozilla/Add-ons/WebExtensions/user_interface tags: - Kullanıcı arayüzü - WebExtensions - İniş translation_of: Mozilla/Add-ons/WebExtensions/user_interface +original_slug: Mozilla/Eklentiler/WebExtensions/user_interface ---
{{AddonSidebar}}
diff --git a/files/tr/mozilla/add-ons/webextensions/what_are_webextensions/index.html b/files/tr/mozilla/add-ons/webextensions/what_are_webextensions/index.html index 2b63208d65..266752739d 100644 --- a/files/tr/mozilla/add-ons/webextensions/what_are_webextensions/index.html +++ b/files/tr/mozilla/add-ons/webextensions/what_are_webextensions/index.html @@ -1,10 +1,11 @@ --- title: Eklenti nedir? -slug: Mozilla/Eklentiler/WebExtensions/Eklenti_nedir +slug: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions tags: - Eklentiler - Web eklentileri translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions +original_slug: Mozilla/Eklentiler/WebExtensions/Eklenti_nedir ---
{{AddonSidebar}}
diff --git a/files/tr/mozilla/add-ons/webextensions/your_first_webextension/index.html b/files/tr/mozilla/add-ons/webextensions/your_first_webextension/index.html index dfd3d30304..7efafe5d0f 100644 --- a/files/tr/mozilla/add-ons/webextensions/your_first_webextension/index.html +++ b/files/tr/mozilla/add-ons/webextensions/your_first_webextension/index.html @@ -1,10 +1,11 @@ --- title: İlk Eklentin -slug: Mozilla/Eklentiler/WebExtensions/İlk_Eklentin +slug: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension tags: - Rehber - WebEklentileri translation_of: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension +original_slug: Mozilla/Eklentiler/WebExtensions/İlk_Eklentin ---
{{AddonSidebar}}
diff --git a/files/tr/mozilla/developer_guide/source_code/index.html b/files/tr/mozilla/developer_guide/source_code/index.html index 9e3fc517df..59ee794fd4 100644 --- a/files/tr/mozilla/developer_guide/source_code/index.html +++ b/files/tr/mozilla/developer_guide/source_code/index.html @@ -1,6 +1,6 @@ --- title: Mozilla kaynak kodu ile çalışmak -slug: Mozilla/Developer_guide/Kaynak_Kod +slug: Mozilla/Developer_guide/Source_Code tags: - Firefox - Geliştirme @@ -9,6 +9,7 @@ tags: - kaynak kodu - thunderbird translation_of: Mozilla/Developer_guide/Source_Code +original_slug: Mozilla/Developer_guide/Kaynak_Kod ---

Aşağıdaki makale Mozilla kaynak koduna erişmenize, keşfetmenize ve önereceğiniz değişiklikleri ağaca nasıl entegre edeceğiniz konusunda yardımcı olacak.

diff --git a/files/tr/orphaned/fennec_(firefox_mobile)/index.html b/files/tr/orphaned/fennec_(firefox_mobile)/index.html index a10390a2d6..0f0f83ab8e 100644 --- a/files/tr/orphaned/fennec_(firefox_mobile)/index.html +++ b/files/tr/orphaned/fennec_(firefox_mobile)/index.html @@ -1,12 +1,13 @@ --- title: Mobile -slug: Fennec_(Firefox_Mobile) +slug: orphaned/Fennec_(Firefox_Mobile) tags: - Firefox - Mobile - firefox fennec - mobil - mobile firefox +original_slug: Fennec_(Firefox_Mobile) ---

fennec_logo.png

Firefox'un cep telefonları için olan sürümüdür. Ekran görüntüleri aşağıdaki gibidir. Yakında daha ayrıntılı bilgiye buradan erişebileceksiniz.

diff --git a/files/tr/orphaned/mdn/community/index.html b/files/tr/orphaned/mdn/community/index.html index 76cdfb75bf..b4fd7d8688 100644 --- a/files/tr/orphaned/mdn/community/index.html +++ b/files/tr/orphaned/mdn/community/index.html @@ -1,11 +1,12 @@ --- title: Join the MDN community -slug: MDN/Community +slug: orphaned/MDN/Community tags: - MDN Meta - Rehber - Topluluk translation_of: MDN/Community +original_slug: MDN/Community ---
{{MDNSidebar}}
diff --git a/files/tr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html b/files/tr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html index 026332438c..930ccb397e 100644 --- a/files/tr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html +++ b/files/tr/orphaned/mdn/contribute/howto/do_an_editorial_review/index.html @@ -1,7 +1,8 @@ --- title: Bir editör incelemesi nasıl yapılır? -slug: MDN/Contribute/Howto/Editor_incelemesi_nasil_yapilir +slug: orphaned/MDN/Contribute/Howto/Do_an_editorial_review translation_of: MDN/Contribute/Howto/Do_an_editorial_review +original_slug: MDN/Contribute/Howto/Editor_incelemesi_nasil_yapilir ---
{{MDNSidebar}}
{{IncludeSubnav("/en-US/docs/MDN")}}
diff --git a/files/tr/orphaned/mdn/editor/basics/index.html b/files/tr/orphaned/mdn/editor/basics/index.html index cf3f1475a1..24d2d90a96 100644 --- a/files/tr/orphaned/mdn/editor/basics/index.html +++ b/files/tr/orphaned/mdn/editor/basics/index.html @@ -1,7 +1,8 @@ --- title: MDN editor basics -slug: MDN/Editor/Basics +slug: orphaned/MDN/Editor/Basics translation_of: MDN/Editor/Basics +original_slug: MDN/Editor/Basics ---
{{MDNSidebar}}

Editing content on MDN is easy; you can use the built-in WYSIWYG editor to create, edit, and improve articles and other pages almost anywhere on the site. The editor window, shown below, is comprised of eight key boxes. This section will provide information about each section so you know how to use our entire editing environment.

diff --git a/files/tr/orphaned/mdn/editor/index.html b/files/tr/orphaned/mdn/editor/index.html index 99c8d58ea1..df8d6f9a64 100644 --- a/files/tr/orphaned/mdn/editor/index.html +++ b/files/tr/orphaned/mdn/editor/index.html @@ -1,12 +1,13 @@ --- title: MDN Düzenleyici Rehberi -slug: MDN/Editor +slug: orphaned/MDN/Editor tags: - Landing - MDN - NeedsTranslation - TopicStub translation_of: MDN/Editor +original_slug: MDN/Editor ---

Sayfada düzenleme uygulaması MDN Web dökümanları wiki sayfası, yeni içerik sağlamak için kolaylık sağlar. Bu rehber bu düzenleyiciyi nasıl kullanıp üretim verimliliğinizi nasıl arttıracağınızı gösterecek. Lütfen Mozilla Sözleşmesini okuyun herhangi bir düzenleme yapmadan evvel.

diff --git a/files/tr/orphaned/mdn/kuma/server_charts/index.html b/files/tr/orphaned/mdn/kuma/server_charts/index.html index 2b3859dfa9..27bed9aceb 100644 --- a/files/tr/orphaned/mdn/kuma/server_charts/index.html +++ b/files/tr/orphaned/mdn/kuma/server_charts/index.html @@ -1,10 +1,11 @@ --- title: Server charts -slug: MDN/Kuma/Server_charts +slug: orphaned/MDN/Kuma/Server_charts tags: - Kuma - MDN Meta Türkçe translation_of: MDN/Kuma/Server_charts +original_slug: MDN/Kuma/Server_charts ---
{{MDNSidebar}}{{IncludeSubnav("/en-US/docs/MDN")}}
diff --git a/files/tr/orphaned/mdn/tools/page_watching/index.html b/files/tr/orphaned/mdn/tools/page_watching/index.html index 4df3df166a..226080839d 100644 --- a/files/tr/orphaned/mdn/tools/page_watching/index.html +++ b/files/tr/orphaned/mdn/tools/page_watching/index.html @@ -1,7 +1,8 @@ --- title: Watch or subscribe to a page or set of pages -slug: MDN/Tools/Page_watching +slug: orphaned/MDN/Tools/Page_watching translation_of: MDN/Tools/Page_watching +original_slug: MDN/Tools/Page_watching ---
{{MDNSidebar}}
diff --git a/files/tr/orphaned/mozilla/add-ons/webextensions/getting_started_with_web-ext/index.html b/files/tr/orphaned/mozilla/add-ons/webextensions/getting_started_with_web-ext/index.html index 810b551b81..137630f542 100644 --- a/files/tr/orphaned/mozilla/add-ons/webextensions/getting_started_with_web-ext/index.html +++ b/files/tr/orphaned/mozilla/add-ons/webextensions/getting_started_with_web-ext/index.html @@ -1,7 +1,8 @@ --- title: Deneyiminize web-ext ile başlayın -slug: Mozilla/Eklentiler/WebExtensions/Deneyiminize_web-ext_ile_başlayın +slug: orphaned/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext translation_of: Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext +original_slug: Mozilla/Eklentiler/WebExtensions/Deneyiminize_web-ext_ile_başlayın ---
{{AddonSidebar}}
diff --git a/files/tr/orphaned/tr/index.html b/files/tr/orphaned/tr/index.html index 3ad0ab9038..9113b51ace 100644 --- a/files/tr/orphaned/tr/index.html +++ b/files/tr/orphaned/tr/index.html @@ -1,6 +1,6 @@ --- title: Mozilla Geliştirici Ağı -slug: Tr +slug: orphaned/Tr tags: - MDC - Mozilla Developer Center @@ -8,6 +8,7 @@ tags: - mdc türkiye - mgm - mozilla geliştirici merkezi +original_slug: Tr ---

logo-only-250x250.pngFirefox Mobile - Android sürümü yayınlandı. Test Etmek isterseniz buraya tıklayınız.

Firefox 9(veya son çıkan beta) sürümünü test etmek isterseniz buraya tıklayınız.

diff --git a/files/tr/orphaned/web/html-alani/index.html b/files/tr/orphaned/web/html-alani/index.html index 06153ac1c1..7ec71baafa 100644 --- a/files/tr/orphaned/web/html-alani/index.html +++ b/files/tr/orphaned/web/html-alani/index.html @@ -1,10 +1,11 @@ --- title: 'HTML: Hypertext Markup Language' -slug: Web/HTML-Alani +slug: orphaned/Web/HTML-Alani tags: - HTML - HTML5 - Web +original_slug: Web/HTML-Alani ---
{{HTMLSidebar}}
diff --git a/files/tr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html b/files/tr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html index 19ffe3c80f..024fd28feb 100644 --- a/files/tr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html +++ b/files/tr/orphaned/web/javascript/reference/global_objects/array/prototype/index.html @@ -1,7 +1,8 @@ --- title: Array.prototype -slug: Web/JavaScript/Reference/Global_Objects/Array/prototype +slug: orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype translation_of: Web/JavaScript/Reference/Global_Objects/Array/prototype +original_slug: Web/JavaScript/Reference/Global_Objects/Array/prototype ---
{{JSRef("Global_Objects", "Array")}}
diff --git a/files/tr/tools/browser_console/index.html b/files/tr/tools/browser_console/index.html index 542c9f6b28..d4f4c1015c 100644 --- a/files/tr/tools/browser_console/index.html +++ b/files/tr/tools/browser_console/index.html @@ -1,6 +1,6 @@ --- title: Browser Console -slug: Araclar/Browser_Console +slug: Tools/Browser_Console tags: - Developer - Tutorial @@ -8,6 +8,7 @@ tags: - WebMechanics - WebRTC translation_of: Tools/Browser_Console +original_slug: Araclar/Browser_Console ---
    {{ToolsSidebar}}
diff --git a/files/tr/tools/debugger/index.html b/files/tr/tools/debugger/index.html index 36f2ee5531..d3e8c68cc7 100644 --- a/files/tr/tools/debugger/index.html +++ b/files/tr/tools/debugger/index.html @@ -1,9 +1,10 @@ --- title: Hata ayıklayıcı -slug: Araclar/HataAyıklayıcı +slug: Tools/Debugger tags: - '#HataAyıklayıcı #HataAyıklama #JavaScript' translation_of: Tools/Debugger +original_slug: Araclar/HataAyıklayıcı ---

Bu sayfa Firefox 52 veya daha üzeri sürümdeki JavaScript Hata Ayıklayıcı'yı tanıtır. Daha önceki sürümlerde nasıl olduğunu görmek için  Debugger (before Firefox 52).

diff --git a/files/tr/tools/index.html b/files/tr/tools/index.html index 9c2e82ecb6..e417962b62 100644 --- a/files/tr/tools/index.html +++ b/files/tr/tools/index.html @@ -1,11 +1,12 @@ --- title: Firefox Geliştirici Araçları -slug: Araclar +slug: Tools tags: - Türkçe Firefox Devop Toolls - firefox aurora - geliştirici araçları translation_of: Tools +original_slug: Araclar ---
{{ToolsSidebar}}
diff --git a/files/tr/tools/page_inspector/index.html b/files/tr/tools/page_inspector/index.html index f50c28aa5c..548d1027e9 100644 --- a/files/tr/tools/page_inspector/index.html +++ b/files/tr/tools/page_inspector/index.html @@ -1,7 +1,8 @@ --- title: Page Inspector -slug: Araclar/Page_Inspector +slug: Tools/Page_Inspector translation_of: Tools/Page_Inspector +original_slug: Araclar/Page_Inspector ---

Bir sayfanın HTML'sini ve CSS'sini incelemek ve değiştirmek için Page Inspector'ı kullanın.

diff --git a/files/tr/tools/performance/index.html b/files/tr/tools/performance/index.html index 803e590515..a47a777603 100644 --- a/files/tr/tools/performance/index.html +++ b/files/tr/tools/performance/index.html @@ -1,7 +1,8 @@ --- title: Performance -slug: Araclar/Performance +slug: Tools/Performance translation_of: Tools/Performance +original_slug: Araclar/Performance ---
{{ToolsSidebar}}
diff --git a/files/tr/tools/remote_debugging/index.html b/files/tr/tools/remote_debugging/index.html index 0718a25e60..7e5304f2f1 100644 --- a/files/tr/tools/remote_debugging/index.html +++ b/files/tr/tools/remote_debugging/index.html @@ -1,7 +1,8 @@ --- title: Remote Debugging -slug: Araclar/Remote_Debugging +slug: Tools/Remote_Debugging translation_of: Tools/Remote_Debugging +original_slug: Araclar/Remote_Debugging ---

You can use the Firefox developer tools on your desktop to debug code running remotely: in a different process on the same device or on a completely different device. To do this you use Firefox to attach the Toolbox to the remote process, and the Toolbox is then launched in its own window. At the moment the following tools support remote debugging:

    diff --git a/files/tr/tools/web_console/index.html b/files/tr/tools/web_console/index.html index 585d711508..a3044762d3 100644 --- a/files/tr/tools/web_console/index.html +++ b/files/tr/tools/web_console/index.html @@ -1,6 +1,6 @@ --- title: Web Konsolu -slug: Araclar/Web_Konsolu +slug: Tools/Web_Console tags: - Debugging Guide Tools Turkish - Türkçe DevOps Web Console Mozilla @@ -8,6 +8,7 @@ tags: - Web Machine Türkçe - Web console Türkçe translation_of: Tools/Web_Console +original_slug: Araclar/Web_Konsolu ---
    {{ToolsSidebar}}
    diff --git a/files/tr/tools/web_console/rich_output/index.html b/files/tr/tools/web_console/rich_output/index.html index 388246ba4b..17e558a85e 100644 --- a/files/tr/tools/web_console/rich_output/index.html +++ b/files/tr/tools/web_console/rich_output/index.html @@ -1,7 +1,8 @@ --- title: Zengin Çıktı -slug: Araclar/Web_Konsolu/Zengin_Cikti +slug: Tools/Web_Console/Rich_output translation_of: Tools/Web_Console/Rich_output +original_slug: Araclar/Web_Konsolu/Zengin_Cikti ---
    {{ToolsSidebar}}
    diff --git a/files/tr/tools/web_console/split_console/index.html b/files/tr/tools/web_console/split_console/index.html index b145783aca..e6ca22812a 100644 --- a/files/tr/tools/web_console/split_console/index.html +++ b/files/tr/tools/web_console/split_console/index.html @@ -1,7 +1,8 @@ --- title: Bölünmüş Konsol -slug: Araclar/Web_Konsolu/Bolunmus_Konsol +slug: Tools/Web_Console/Split_console translation_of: Tools/Web_Console/Split_console +original_slug: Araclar/Web_Konsolu/Bolunmus_Konsol ---
    {{ToolsSidebar}}
    diff --git a/files/tr/tools/web_console/the_command_line_interpreter/index.html b/files/tr/tools/web_console/the_command_line_interpreter/index.html index a63f823b21..12c6d9d405 100644 --- a/files/tr/tools/web_console/the_command_line_interpreter/index.html +++ b/files/tr/tools/web_console/the_command_line_interpreter/index.html @@ -1,7 +1,8 @@ --- title: Komut Satırı Tercümanı -slug: Araclar/Web_Konsolu/Komut_Satiri_Tercumani +slug: Tools/Web_Console/The_command_line_interpreter translation_of: Tools/Web_Console/The_command_line_interpreter +original_slug: Araclar/Web_Konsolu/Komut_Satiri_Tercumani ---
    {{ToolsSidebar}}
    diff --git a/files/tr/tools/web_console/ui_tour/index.html b/files/tr/tools/web_console/ui_tour/index.html index d1a1ebb0d5..dff0f7bafc 100644 --- a/files/tr/tools/web_console/ui_tour/index.html +++ b/files/tr/tools/web_console/ui_tour/index.html @@ -1,7 +1,8 @@ --- title: Web Konsolu'nu Açmak -slug: Araclar/Web_Konsolu/Web_Konsolunu_Acmak +slug: Tools/Web_Console/UI_Tour translation_of: Tools/Web_Console/UI_Tour +original_slug: Araclar/Web_Konsolu/Web_Konsolunu_Acmak ---
    {{ToolsSidebar}}
    diff --git a/files/tr/web/api/canvas_api/index.html b/files/tr/web/api/canvas_api/index.html index f6a9a2f8d7..32842f3676 100644 --- a/files/tr/web/api/canvas_api/index.html +++ b/files/tr/web/api/canvas_api/index.html @@ -1,6 +1,6 @@ --- title: Tuval Arabirimi -slug: Web/API/Tuval_Arabirimi +slug: Web/API/Canvas_API tags: - Arabirim - Canvas @@ -9,6 +9,7 @@ tags: - Kaynak - Tuval translation_of: Web/API/Canvas_API +original_slug: Web/API/Tuval_Arabirimi ---
    {{CanvasSidebar}}
    diff --git a/files/tr/web/css/class_selectors/index.html b/files/tr/web/css/class_selectors/index.html index d735ceed7c..7db7988ab8 100644 --- a/files/tr/web/css/class_selectors/index.html +++ b/files/tr/web/css/class_selectors/index.html @@ -1,12 +1,13 @@ --- title: Sınıf seçicileri -slug: Web/CSS/Sınıf_seçicileri +slug: Web/CSS/Class_selectors tags: - CSS - CSS Referans - Yeni başlayan - seçiciler translation_of: Web/CSS/Class_selectors +original_slug: Web/CSS/Sınıf_seçicileri ---
    {{CSSRef("Selectors")}}
    diff --git a/files/tr/web/css/css_box_model/introduction_to_the_css_box_model/index.html b/files/tr/web/css/css_box_model/introduction_to_the_css_box_model/index.html index 38245c8af4..f93bbe1292 100644 --- a/files/tr/web/css/css_box_model/introduction_to_the_css_box_model/index.html +++ b/files/tr/web/css/css_box_model/introduction_to_the_css_box_model/index.html @@ -1,10 +1,11 @@ --- title: Kutu modeli -slug: Web/CSS/box_model +slug: Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model tags: - CSS - Kutu Modeli translation_of: Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model +original_slug: Web/CSS/box_model ---

    Özet

    diff --git a/files/tr/web/css/css_lists_and_counters/using_css_counters/index.html b/files/tr/web/css/css_lists_and_counters/using_css_counters/index.html index d31a159a27..bc33ddb4dd 100644 --- a/files/tr/web/css/css_lists_and_counters/using_css_counters/index.html +++ b/files/tr/web/css/css_lists_and_counters/using_css_counters/index.html @@ -1,6 +1,6 @@ --- title: CSS Sayaçlarını Kullanmak -slug: Web/Guide/CSS/Sayaçlar +slug: Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters tags: - CSS - CSS Counter @@ -8,6 +8,7 @@ tags: - MDN - Sayaçlar translation_of: Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +original_slug: Web/Guide/CSS/Sayaçlar ---

    {{CSSRef}}

    CSS counters are, in essence, variables maintained by CSS whose values may be incremented by CSS rules to track how many times they're used. This lets you adjust the appearance of content based on its placement in the document. CSS counters are an implementation of Automatic counters and numbering in CSS 2.1.

    diff --git a/files/tr/web/css/css_selectors/index.html b/files/tr/web/css/css_selectors/index.html index a7f89d5c85..af5308fe63 100644 --- a/files/tr/web/css/css_selectors/index.html +++ b/files/tr/web/css/css_selectors/index.html @@ -1,6 +1,6 @@ --- title: CSS seçiciler -slug: Öğren/CSS/CSS_yapi_taslari/Selectors +slug: Web/CSS/CSS_Selectors tags: - Başlangıç - CSS @@ -11,6 +11,7 @@ tags: - seçiciler - sınıf translation_of: Web/CSS/CSS_Selectors +original_slug: Öğren/CSS/CSS_yapi_taslari/Selectors ---
    {{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Cascade_and_inheritance", "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks")}}
    diff --git a/files/tr/web/css/margin/index.html b/files/tr/web/css/margin/index.html index 356c738f48..e2fc1b4085 100644 --- a/files/tr/web/css/margin/index.html +++ b/files/tr/web/css/margin/index.html @@ -1,12 +1,13 @@ --- title: marjin -slug: Web/CSS/marjin +slug: Web/CSS/margin tags: - CSS - CSS özelliği - Referans translation_of: Web/CSS/margin translation_of_original: Web/CSS/margin-new +original_slug: Web/CSS/marjin ---
    {{CSSRef}}
    diff --git a/files/tr/web/css/type_selectors/index.html b/files/tr/web/css/type_selectors/index.html index f24f899681..8c375757ba 100644 --- a/files/tr/web/css/type_selectors/index.html +++ b/files/tr/web/css/type_selectors/index.html @@ -1,12 +1,13 @@ --- title: Tip Seçicileri -slug: Web/CSS/Tip_secicileri +slug: Web/CSS/Type_selectors tags: - CSS - CSS referansı - Yeni başlayan - seçiciler translation_of: Web/CSS/Type_selectors +original_slug: Web/CSS/Tip_secicileri ---
    {{CSSRef("Selectors")}}
    diff --git a/files/tr/web/guide/graphics/index.html b/files/tr/web/guide/graphics/index.html index c72c02d2b5..52179a8951 100644 --- a/files/tr/web/guide/graphics/index.html +++ b/files/tr/web/guide/graphics/index.html @@ -1,6 +1,6 @@ --- title: Web Çizgeleri -slug: Web/Guide/Çizgeler +slug: Web/Guide/Graphics tags: - 2B - 3B @@ -16,6 +16,7 @@ tags: - Çizge - Ölçeklenebilir Görüntü translation_of: Web/Guide/Graphics +original_slug: Web/Guide/Çizgeler ---

    Web siteleri ve uygulamaların bazen çizge göstermeleri gerekir.Durağan görseller {{HTMLElement("img")}} ögesi kullanılarak kolayca gösterilebilir, ya da ögenin ardalan görseli CSS {{cssxref("background-image")}} özelliğiyle belirlenebilir. Oluşturulmuş çizgelerin üzerinde de anlık oynamalar yapabilirsiniz. Buradaki gönderiler sizler bunları nasıl yapacağınızı anlatır.

    diff --git a/files/tr/web/guide/html/html5/index.html b/files/tr/web/guide/html/html5/index.html index d4ab791219..b2fc61ed8f 100644 --- a/files/tr/web/guide/html/html5/index.html +++ b/files/tr/web/guide/html/html5/index.html @@ -1,6 +1,6 @@ --- title: HTML5 -slug: Web/HTML/HTML5 +slug: Web/Guide/HTML/HTML5 tags: - HTML - HTML5 @@ -14,6 +14,7 @@ tags: - html5 türkçe açıklama - web geliştirici translation_of: Web/Guide/HTML/HTML5 +original_slug: Web/HTML/HTML5 ---

    HTML5 , html standartlarının son halidir. Anlam olarak iki farklı kavramı temsil eder:

    diff --git a/files/tr/web/html/element/aside/index.html b/files/tr/web/html/element/aside/index.html index 234d56a434..64b2e421cd 100644 --- a/files/tr/web/html/element/aside/index.html +++ b/files/tr/web/html/element/aside/index.html @@ -1,11 +1,12 @@ --- title: