Свойство keyCode в JavaScript было заменено на key, потому что оно не учитывает разные раскладки клавиатуры и может быть непоследовательным в разных браузерах и платформах. 1
Свойство keyCode представляет нажатую физическую клавишу, а не символ, что может приводить к несоответствиям, особенно с раскладками клавиатуры, системами и браузерами. 2 Например, нажатие буквы с включённым режимом Caps Lock и без него может давать разные результаты. 2
Свойство key, в свою очередь, стандартизировано и предоставляет фактический символ или имя клавиши, что делает его более надёжным для интернационализации и доступности. 1
Таким образом, использование свойства key обеспечивает более согласованный и предсказуемый способ обработки событий клавиатуры на разных платформах и устройствах. 3