Untitled
unknown
plain_text
10 months ago
5.0 kB
15
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