let obj = { a: 1 }; let array = [obj]; obj = null; console.log(obj); // console.log(array); //
Frontend
import React, { useState, useEffect, useLayoutEffect } from 'react'; export default () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("her render 1")); console.log("her render 2"); useEffect(() => console.log("her render 3")); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Artır </button> ); } // montaj -> her render 2, her render 1, her render 3 // güncelleme -> her render 2, her render 1, her render 3 // sökme 4
Bir getUserProfile fonksiyonu yazın, kullanıcı kimliğini argüman olarak alır ve API uç noktasından "[link]" kullanıcı profilini getirir. Fonksiyon, başarılı olursa kullanıcı profilini kaydetmeli ve başarısız olursa bir hata mesajı kaydetmelidir.
Let ve const (hoisting) yükselir mi? Onlara deklarasyondan önce erişildiğinde ne olur?
Set nedir? new Set çağırırken argüman olarak ne geçirebiliriz?
const S = { id: 1, isim: "Ivan", yaş: "39", tel: [phone] }; function getParam(obj, key) { return obj[key]; } getParam(S, "tel"); getParam(S, "job");
İlk renderda ne olacağını yazın — console.log'lar hangi sırayla gösterilecek. Tıklamadan sonra ne olacak?
React.memo kullanarak Child bileşeninin soyut bir uygulamasını yazın. React.memo ikinci argüman olarak ne alır?
WeakSet nedir?
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; const someFunc = (arr) => { return [...arr].sort((a, b) => a - b); }; const LazyInit = (props) => { const [arr, setArr] = useState(() => someFunc(props.arr)); const onClick = () => { setArr((prev) => prev.concat(prev.length + 1)) } return ( <> <button onClick={onClick}> Artır </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />; --- Sağdaki konuşma şu konuları tartışıyor: - TypeScript ile jenerikler kullanımı: "<T extends object, K extends keyof T>" - Verinin string olup olmadığını kontrol etmek için tip koruyucu: "isString(data: unknown): data is string { ... }" - useState ile fonksiyon kullanımı, her renderda tekrar çalışmasını önlemek için: ``` const [state, setState] = useState(getComplexData); // veya const [state, setState] = useState(() => getComplexData()); ``` - useState'e geçirilen fonksiyon yalnızca bileşen ilk yüklendiğinde çalışır. - 11. satırda prev.concat ile doğrudan durumu değiştirme konusunda uyarı. --- Teknik görev, React bileşen kodunu analiz etmek ve gerekirse düzeltmek veya optimize etmek, özellikle: - useState ile uygun tembel başlatma. - Durumu doğrudan değiştirmemek. - TypeScript jeneriklerini ve tip koruyucuları anlamak. - Butona tıklandığında bileşenin durumu doğru şekilde güncellemesini sağlamak.
Kapanma nedir?
Aynı bilgiyi döndüren üç veri kaynağı var. En hızlı olanından nasıl cevap alınır?
Map ve WeakMap arasındaki fark nedir?
React'te useState kancasından bahset.
Ok fonksiyonlarıyla new yapıcıyla neden çalışılamaz?
JavaScript'te fonksiyonlar nasıl oluşturulur? Fonksiyon oluşturmanın yolları nelerdir ve bunlar nasıl farklılık gösterir?
İşinizde hangi TypeScript yardımcı tiplerini kullanıyorsunuz? Record, Pick, Omit, Partial, Required, Parameters, Exclude, Extract hakkında konuş.