Untitled

 avatar
unknown
plain_text
10 months ago
5.0 kB
13
Indexable
// 1) İleri Düzey Sorular 
// 11. soru
const ogrenci = {
  ad: "Taha",
  soyad: "Mis",
  notlar: [80, 90, 75, 100],

  // Ortalama hesaplama fonksiyonu
  ortalamaHesapla: function() {
    if (this.notlar.length === 0) return 0;
    let toplam = this.notlar.reduce((acc, not) => acc + not, 0);
    return toplam / this.notlar.length;
  }
};

// Kullanım
console.log("Ogrencinin not ortalaması:", ogrenci.ortalamaHesapla());


// 12. soru
const sayilar = [12, 45, 67, 23, 89, 34];

// For döngüsü ile en büyük sayıyı bulan fonksiyon
function enBuyukFor(arr) {
  if (arr.length === 0) return undefined;
  let max = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > max) {
      max = arr[i];
    }
  }
  return max;
}

// Reduce metodu ile en büyük sayıyı bulan fonksiyon
function enBuyukReduce(arr) {
  if (arr.length === 0) return undefined;
  return arr.reduce((max, sayi) => (sayi > max ? sayi : max));
}

// Kullanım
console.log("For yöntemine göre sonuç:", enBuyukFor(sayilar));
console.log("Reduce metodu yöntemine göre sonuç:", enBuyukReduce(sayilar));


// 13.soru
// setTimeout'u Promise'e saran yardımcı fonksiyon
function bekle(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

// Asenkron fonksiyon
async function merhabaDunya() {
  await bekle(2000); // 2 saniye bekle
  console.log("Merhaba Dünya!");
}

// Çalıştır
merhabaDunya();


// 14.soru
function bolmeIslemi(sayi, bolen) {
  try {
    if (bolen === 0) {
      throw new Error("0'a bölme yapılamaz!");
    }
    let sonuc = sayi / bolen;
    console.log("Sonuç:", sonuc);
  } catch (hata) {
    console.log("Hata:", hata.message);
  }
}

// Kullanım
bolmeIslemi(10, 2); // Sonuç: 5
bolmeIslemi(10, 0); // Hata: 0'a bölme yapılamaz!


//4) Arrow Function Soruları
//A1 
// Arrow function ile toplama
const toplaArrow = (a, b) => a + b;
console.log("Sayıların toplamı:", toplaArrow(3, 5));

//A2
// Arrow function ile kare alma
const kare = (sayi) => sayi * sayi;
console.log("Sonuç:", kare(6)); // 36

//A3
const sayilar1 = [1, 2, 3, 4, 5];
const kupDizisi = sayilar1.map(sayi => sayi ** 3);
console.log(kupDizisi);

//A4
// Arrow function ile string tersine çevirme
const tersCevir = (str) => str.split('').reverse().join('');
console.log("Kelimenin tersi:", tersCevir("react"));

//A5
// Default parametreli arrow function
const selamla = (isim = "Misafir") => `Merhaba ${isim}!`;
console.log(selamla());       // Merhaba Misafir!
console.log(selamla("Furkan")); // Merhaba Furkan!


//5) Scope (Kapsam) Soruları
//S-1
//let örneği (block-scoped) 
function letOrnegi() {
  if (true) {
    let y = 20; // sadece block scope
    console.log("Block içi y:", y); // 20
  }
  // console.log(y); // Hata! y block dışında tanımlı değil
}
letOrnegi();

//const örneği (block-scoped ve sabit)
function constOrnegi() {
  if (true) {
    const z = 30; // block scope
    console.log("Block içi z:", z); // 30
  }
  // console.log(z); // Hata! z block dışında tanımlı değil
}
constOrnegi();

//var örneği (function-scoped)
function varOrnegi() {
  if (true) {
    var x = 10; // function scope
  }
  console.log("Var örneği x:", x); // 10
}
varOrnegi();

//S3
function ornekFonk() {
  let sayi = 10; // sadece bu fonksiyonun içinde geçerli
  console.log("Fonksiyon içi sayi:", sayi); // 10
}
ornekFonk();
// console.log("Fonksiyon dışı sayi:", sayi); // Hata! scope dışında, yorum satırı yapıldı

//S4 Closure örneği
function sayiArtirici() {
  let sayi = 0;
  return function() {
    sayi++;
    console.log(sayi);
  }
}
const artir = sayiArtirici();
artir(); // 1
artir(); // 2
artir(); // 3

//S5 Closure sayıyı azaltma
function sayiAzaltici() {
  let x = 3; // function scope
  return function() {
    console.log(x);
    x--;
  }
}
const azalt = sayiAzaltici();
azalt(); // 3
azalt(); // 2
azalt(); // 1


//Bonus Soru
// Örnek JSON verisi (farklı post başlıkları)
const posts = [
  { id: 1, title: "Python ile Veri Analizi" },
  { id: 2, title: "ReactJS Giriş" },
  { id: 3, title: "Node.js Temelleri" },
  { id: 4, title: "CSS Flexbox ve Grid" },
  { id: 5, title: "HTML5 Yeni Özellikler" },
  { id: 6, title: "TypeScript Nedir?" }
];

// API’den veri çekiyormuş gibi simüle eden fonksiyon
function fetchPosts() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(posts); // veri döndür
    }, 1000); // 1 saniye beklet
  });
}

// Async/Await ile veri çekme ve ilk 5 postu ekrana yazdırma
async function gosterPosts() {
  try {
    const data = await fetchPosts();
    const ilkBes = data.slice(0, 5); // ilk 5 post
    console.log("İlk 5 Post Başlığı:");
    ilkBes.forEach(post => console.log(post.title));
  } catch (error) {
    console.log("Hata oluştu:", error.message);
  }
}

// Çalıştır
gosterPosts();
Editor is loading...
Leave a Comment