Takip et

20 Her JavaScript Geliştiricisinin Bilmesi Gereken İpucu

20 Her JavaScript Geliştiricisinin Bilmesi Gereken İpucu

JavaScript, web geliştirmenin olmazsa olmaz dili. Günümüzde hemen her web sitesi ve web uygulaması JavaScript’i kullanıyor. Bu dil, web sayfalarına interaktiflik ve dinamiklik kazandırmak için olmazsa olmaz. Ancak, JavaScript’in sunduğu tüm olanakları kullanabilmek için, bazı temel ipuçlarını bilmek şart. Bu makalede, her JavaScript geliştiricisinin bilmesi gereken 20 ipucu sizlerle paylaşıyorum.

1. Değişken Bildirimi

JavaScript’te değişkenler `let`, `const` ve `var` anahtar sözcükleri ile bildirilebilir. `let` ile bildirilen değişkenler yeniden atanabilir, `const` ile bildirilen değişkenler ise değişmez. `var` ise, artık pek tercih edilmeyen eski bir yöntemdir. `var` ile bildirilen değişkenler, fonksiyon kapsamında geçerlidir ve global kapsamda kullanılmalarından kaçınılmalıdır.


let name = "Fatih"; // Değişken yeniden atanabilir
const age = 30; // Değişken sabittir
var job = "Software Engineer"; // Eski yöntem, kullanılmaması önerilir

2. Fonksiyon Bildirimi

JavaScript’te fonksiyonlar, kod bloklarının tekrar kullanılabilir hale getirilmesini sağlar. Fonksiyonlar, `function` anahtar sözcüğü ile bildirilir ve parantezler arasında parametreler alır. Fonksiyonlar, geri dönüş değerleri döndürebilir.


function sum(a, b) {
  return a + b;
}

console.log(sum(2, 3)); // Çıktı: 5

3. Arrow Fonksiyonları

Arrow fonksiyonları, kısa ve öz fonksiyonlar tanımlamamıza olanak tanır. Bu fonksiyonlar `=>` ile tanımlanır. Arrow fonksiyonlarında `this` bağlamı, fonksiyonun tanımlandığı yerde sabitlenir.


const sum = (a, b) => a + b;

console.log(sum(2, 3)); // Çıktı: 5

4. `forEach` Döngüsü

`forEach` döngüsü, dizi elemanlarını sırayla yinelemek için kullanılır. `forEach` döngüsü, her bir dizi elemanı için bir callback fonksiyonunu çağırır.


const names = ["Ahmet", "Mehmet", "Ayşe"];

names.forEach((name) => {
  console.log(name);
});

5. `map` Metodu

`map` metodu, dizi elemanlarını dönüştürmek için kullanılır. `map` metodu, her bir dizi elemanı için bir callback fonksiyonunu çağırır ve dönüştürülen elemanları içeren yeni bir dizi oluşturur.


const numbers = [1, 2, 3];

const squaredNumbers = numbers.map((number) => number * number);

console.log(squaredNumbers); // Çıktı: [1, 4, 9]

6. `filter` Metodu

`filter` metodu, dizi elemanlarını filtrelemek için kullanılır. `filter` metodu, her bir dizi elemanı için bir callback fonksiyonunu çağırır ve koşulu sağlayan elemanları içeren yeni bir dizi oluşturur.


const numbers = [1, 2, 3, 4, 5];

const evenNumbers = numbers.filter((number) => number % 2 === 0);

console.log(evenNumbers); // Çıktı: [2, 4]

7. `reduce` Metodu

`reduce` metodu, dizi elemanlarını birleştirmek için kullanılır. `reduce` metodu, her bir dizi elemanı için bir callback fonksiyonunu çağırır ve önceki adımda üretilen sonucu bir sonraki elemana uygular.


const numbers = [1, 2, 3, 4, 5];

const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(sum); // Çıktı: 15

8. `async` ve `await`

`async` ve `await` anahtar sözcükleri, asenkron işlemleri daha okunabilir ve yönetilebilir hale getirmek için kullanılır. `async` anahtar sözcüğü ile bildirilen bir fonksiyon, asenkron işlemleri gerçekleştirebilir. `await` anahtar sözcüğü ise, asenkron işlemin tamamlanmasını bekler.


async function fetchData() {
  const response = await fetch("https://fatihsoysal.com");
  const data = await response.json();
  return data;
}

fetchData().then((data) => console.log(data));

9. `try…catch` Bloğu

`try…catch` bloğu, hata yakalama mekanizmasıdır. `try` bloğu içinde hata oluşturabilecek kodlar yer alır. Hata oluşursa `catch` bloğu çalışır ve hatayı işler.


try {
  const number = parseInt("abc");
  console.log(number);
} catch (error) {
  console.error("Hata oluştu:", error);
}

10. `this` Bağlamı

`this` anahtar sözcüğü, fonksiyonun çağırıldığı bağlama bağlı olarak farklı değerler alabilir. Bir fonksiyon global kapsamda çağırılırsa, `this` global nesnesine karşılık gelir. Bir nesnenin metodu olarak çağırılırsa, `this` nesnesine karşılık gelir.


const myObject = {
  name: "Fatih",
  sayName: function() {
    console.log(this.name);
  }
};

myObject.sayName(); // Çıktı: Fatih

11. `call`, `apply` ve `bind`

`call`, `apply` ve `bind` metotları, `this` bağlamını değiştirmek için kullanılır. `call` metodu, fonksiyonu belirtilen bağlamda çağırır ve belirtilen argümanları geçirir. `apply` metodu, `call` metodu ile aynı işlevi görür, ancak argümanları bir dizi içinde geçirir. `bind` metodu, fonksiyonu belirtilen bağlama bağlar ve yeni bir fonksiyon döndürür.


function greet(message) {
  console.log(this.name + " " + message);
}

const person = {
  name: "Fatih"
};

greet.call(person, "Merhaba!"); // Çıktı: Fatih Merhaba!

12. `Object.keys()`, `Object.values()`, `Object.entries()`

Bu metotlar, nesnelerin özelliklerini almak için kullanılır. `Object.keys()` metodu, bir nesnenin tüm özellik adlarını içeren bir dizi döndürür. `Object.values()` metodu, bir nesnenin tüm özellik değerlerini içeren bir dizi döndürür. `Object.entries()` metodu ise, bir nesnenin her bir özellik adı-değer çiftini içeren bir dizi döndürür.


const myObject = {
  name: "Fatih",
  age: 30
};

console.log(Object.keys(myObject)); // Çıktı: ["name", "age"]
console.log(Object.values(myObject)); // Çıktı: ["Fatih", 30]
console.log(Object.entries(myObject)); // Çıktı: [["name", "Fatih"], ["age", 30]]

13. Destructuring

Destructuring, değişkenleri bir nesne veya diziden kolayca ayırmak için kullanılır. Destructuring, daha az kodla daha fazla veri ayırmamıza olanak tanır.


const myObject = {
  name: "Fatih",
  age: 30
};

const { name, age } = myObject;

console.log(name); // Çıktı: Fatih
console.log(age); // Çıktı: 30

14. Default Parametreler

Fonksiyonlara varsayılan parametreler tanımlayabiliriz. Fonksiyon çağrıldığında bu parametreler belirtilmezse, varsayılan değer kullanılır.


function greet(name = "Arkadaş") {
  console.log("Merhaba " + name);
}

greet(); // Çıktı: Merhaba Arkadaş
greet("Fatih"); // Çıktı: Merhaba Fatih

15. `Spread` Operatörü

`Spread` operatörü (`…`), dizileri ve nesneleri yaymak için kullanılır. `Spread` operatörü, dizi veya nesnenin elemanlarını diğer diziler veya nesnelere kopyalamamıza olanak tanır.


const numbers1 = [1, 2, 3];
const numbers2 = [4, 5, 6];

const allNumbers = [...numbers1, ...numbers2];

console.log(allNumbers); // Çıktı: [1, 2, 3, 4, 5, 6]

16. `Rest` Operatörü

`Rest` operatörü (`…`), fonksiyonlara geçirilen değişken sayıda argümanı toplamak için kullanılır. `Rest` operatörü, argümanları bir dizi içinde toplar.


function sum(...numbers) {
  let total = 0;
  for (const number of numbers) {
    total += number;
  }
  return total;
}

console.log(sum(1, 2, 3, 4)); // Çıktı: 10

17. `setTimeout` ve `setInterval`

`setTimeout` ve `setInterval` metotları, belirli bir süre sonra veya düzenli aralıklarla fonksiyonları çağırmak için kullanılır. `setTimeout` metodu, fonksiyonu yalnızca bir kez çağırır. `setInterval` metodu ise, fonksiyonu belirtilen aralıklarda tekrar tekrar çağırır.


setTimeout(() => {
  console.log("1 saniye sonra");
}, 1000);

setInterval(() => {
  console.log("Her 1 saniyede bir");
}, 1000);

18. DOM Manipülasyonu

DOM (Document Object Model), HTML belgesinin yapısal gösterimidir. DOM, JavaScript ile web sayfalarındaki elementleri seçmemizi, değiştirmemizi ve yeni elementler eklememizi sağlar.


const myElement = document.getElementById("myElement");

myElement.innerHTML = "Merhaba Dünya!";

19. Event Listener’lar

Event listener’lar, kullanıcı eylemlerine veya tarayıcı olaylarına tepki vermek için kullanılır. Event listener’lar, belirli bir elemente eklenir ve belirli bir olayın tetiklenmesi durumunda bir fonksiyonu çağırır.


const myButton = document.getElementById("myButton");

myButton.addEventListener("click", () => {
  console.log("Butona tıklandı!");
});

20. Kod Stilleri ve İyi Uygulamalar

İyi kod stilleri ve iyi uygulamalar, kodun okunabilirliğini, sürdürülebilirliğini ve güvenilirliğini artırır. Kodlama standartlarına uymak, kod tabanını daha kolay anlamayı ve bakımı yapmayı sağlar. JavaScript için yaygın olarak kullanılan kodlama standartlarından biri olan **Airbnb JavaScript Style Guide**’a [buradan](https://www.airbnb.com/manage-listing/2579024/rental-agreement) ulaşabilirsiniz.

Kod stilleri ve iyi uygulamalar, JavaScript geliştirmede büyük önem taşır. Bu konular, daha temiz, daha organize ve daha sürdürülebilir kodlar yazılmasını sağlar.

Bu ipuçlarının, JavaScript öğrenme yolculuğunuzu kolaylaştırmasını ve daha verimli bir geliştirici olmanıza yardımcı olmasını umuyorum.

Siz de JavaScript’in inceliklerini keşfetmek ve daha derinlemesine bilgi edinmek için [fatihsoysal.com](https://fatihsoysal.com/) sitesini ziyaret edebilir ve diğer blog yazılarımı inceleyebilirsiniz.

#Etiketler

#javascript #webgeliştirme #kodlama #ipuçları #geliştirici #programlama #webteknolojileri #dom #kodstilleri #iyiu uygulamalar #async #await #arrowfonksiyonları #desctucturing #spread #rest #dommanipülasyonu #eventlistener

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.