Cuckoo hashing uses two (or more) hash functions, so each key can live in one of a few positions. Lookups are O(1) and simple, but inserts can trigger a chain of evictions; in rare cases you must rehash/resize to break a cycle.
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "cuckoo-hashing:-what-is-it-and-what-trade-off-do"
function explain() {
// Start from the core idea:
// Cuckoo hashing uses two (or more) hash functions, so each key can live in one of a few pos
}