Rovnost názvů vlastností objektů závisí na jednotkách kódu

Dnes jsem psal rychlý blogový příspěvek o skrytých znacích v názvech vlastností objektů a při psaní jsem narazil na dnešní učení.

Specifikace ECMAScript popisuje rovnost pro názvy vlastností takto:

Objekt může mít dvě vlastnosti, které vypadají stejně, ale sestávají z různých kódových jednotek. Podívejme se na příklad.

const unicodeObject = {
    ü: 'foo',
    u\u0308: 'bar'
}

// evaluates to:
// {ü: "foo", ü: "bar"}

Vlastnosti vypadají stejně, ale nejsou, protože se skládají z různých kódových jednotek. Pokud vás zajímají další podrobnosti o názvech vlastností, podívejte se na můj blogový příspěvek „Skryté zprávy v názvech vlastností JavaScript“, je v něm mnohem více skvělých (a děsivých) věcí.;)