# JavaScript + React Code Review Review {{input}} for code quality, correctness, and best practices. ## JavaScript - Use `const` by default; `let` for reassignment; never `var` - Add PropTypes declarations on all components for runtime type safety - Prefer explicit `===` over `==`; avoid implicit coercions ## React Correctness - `useEffect` dependency arrays must be complete — missing deps cause stale closure bugs - Never mutate state directly; always return new objects/arrays from state updaters - Avoid setting state in render; derive values with `useMemo` where appropriate - Keys in lists must be stable and unique — never use array index as key in dynamic lists ## Performance - Wrap expensive pure computations in `useMemo`; stable callbacks passed as props in `useCallback` - Split large components; avoid re-rendering large subtrees on unrelated state changes - Lazy-load routes and heavy components with `React.lazy` + `Suspense` - Avoid creating objects/arrays/functions inline in JSX props (creates new refs every render) ## Accessibility - Interactive elements must be keyboard-navigable and have accessible labels - Images need descriptive `alt` text; decorative images use `alt=""` - Use semantic HTML elements (`