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.
İlgili JavaScript soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.