Bu kodların çıktısı nedir? ['1', '7', '11'].map(parseInt) ve [10, 1, 2, 25].sort()

Cevap

Çıktılar [1, NaN, 3] ve [1, 10, 2, 25]'tir. İkisi de API'lerin varsayılan davranışını bilmeyi test eden klasik tuzaklardır.

map(parseInt)

map callback'e üç argüman verir: (eleman, index, dizi). parseInt ise ikinci argümanı radix (taban) olarak kullanır:

parseInt("1", 0);   // 1   -> radix 0 "varsayılan" (10) kabul edilir
parseInt("7", 1);   // NaN -> taban 1 geçersiz
parseInt("11", 2);  // 3   -> ikilik tabanda 11 = 3

// Doğrusu
["1", "7", "11"].map(Number);              // [1, 7, 11]
["1", "7", "11"].map((s) => parseInt(s, 10));

sort()

Karşılaştırma fonksiyonu verilmezse elemanlar string'e çevrilip UTF-16 sırasına göre sıralanır; "10" "2"'den önce gelir. Ayrıca sort diziyi yerinde değiştirir.

[10, 1, 2, 25].sort();                 // [1, 10, 2, 25]
[10, 1, 2, 25].sort((a, b) => a - b);  // [1, 2, 10, 25]

// Orijinali bozmadan (ES2023)
const sorted = nums.toSorted((a, b) => a - b);

// Türkçe metin sıralama
names.sort((a, b) => a.localeCompare(b, "tr"));

React'te state dizisini sort() ile yerinde sıralamak mutasyondur ve render'ı tetiklemeyebilir; toSorted veya kopya kullanın.

  1. var, let ve const arasındaki fark nedir?KolayJavaScriptFrontend
  2. == ile === arasındaki fark nedir?KolayJavaScriptFrontend
  3. Closure nedir? Bir örnekle açıklayın.OrtaJavaScriptFrontend
  4. Aşağıdaki kodun çıktısı nedir? (Event loop)OrtaJavaScriptFrontend
  5. this anahtar kelimesi nasıl belirlenir? Arrow function'larda ne değişir?OrtaJavaScriptFrontend
  6. Bir debounce fonksiyonu yazın.ZorJavaScriptFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle