Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Event.which (Key)

Загальний опис

which — це властивість об'єкта KeyEvent, яка повертає числовий код клавіші, натиснутої користувачем під час події клавіатури, такої як keydown, keypress або keyup. Вона використовувалася раніше для визначення коду клавіші, яка була натиснута. Кожна клавіша на клавіатурі має свій код, який представляє цю клавішу, наприклад: 13 для клавіші Enter, 27 для Escape, 32 для пробілу і т. д.

Зараз властивість which вважається застарілою, і рекомендується використовувати більш сучасні властивості, такі як event.key або event.code, які надають більш детальну інформацію. Однак which все ще використовується для забезпечення сумісності з деякими старими браузерами. Для більш сучасного підходу event.key повертає символ натиснутої клавіші (наприклад, "Enter" або "a"), тоді як event.code повертає фізичний код клавіші незалежно від мови розкладки.

При використанні властивості which, варто пам'ятати, що її поведінка може відрізнятися для подій keypress, де вона повертає значення символу (ASCII-код), і для keydown та keyup, де вона повертає код фізичної клавіші. Наприклад:

document.addEventListener('keydown', function(event) {
  if (event.which === 13) {
    console.log('Натиснута клавіша Enter.');
  }
});

У цьому прикладі, коли користувач натискає клавішу Enter, значення which дорівнюватиме 13. Це дозволяє розробникам створювати функціонал, який реагує на певні клавіші або комбінації клавіш. Для сучасної кросбраузерної підтримки рекомендується використовувати key або code, а which застосовувати тільки в тих випадках, коли важлива підтримка старих браузерів.

Таким чином, властивість which є корисною для базових задач обробки подій клавіатури, однак для складніших завдань краще використовувати більш сучасні інструменти.

Порада:

При роботі з властивістю which у додатках, де важлива підтримка сучасних браузерів, можна комбінувати її з event.key або event.code. Це забезпечить кращу сумісність і дозволить вам обробляти різні розкладки клавіатури.

Порада:

Якщо вам потрібно обробляти клавіші з особливим значенням, такі як стрілки або функціональні клавіші (F1-F12), властивість which також може бути використана. Наприклад, клавіші стрілок мають значення 37, 38, 39 і 40 відповідно до напрямку.

Порада:

Завжди перевіряйте сумісність властивості which з різними операційними системами та браузерами. У деяких старих версіях браузерів мобільні клавіатури можуть не передавати значення which коректно.

Синтаксис

event.which

Значення

Return

Переглядачі

Переглядач

1

1

1

15

79

Переглядач

37

18

4

1

Переглядач

-

-

Приклади


У цьому прикладі користувач вводить текст у текстове поле, а за допомогою події keydown відслідковується, яка клавіша була натиснута. При кожному натисканні клавіші на екрані відображається як символ клавіші, так і її код. Це корисно для тестування обробки введення з клавіатури та перевірки функціональності клавіш.

Цей приклад демонструє, як можна обробляти комбінацію клавіш Ctrl + F, яка зазвичай використовується для пошуку. Використовуючи which разом з модифікатором ctrlKey, можна створити власну логіку для обробки цієї комбінації.

document.addEventListener('keydown', function(event) {
  if (event.which === 70 && event.ctrlKey) {
    event.preventDefault();
    console.log('Натиснуто Ctrl + F для пошуку.');
    // Логіка для відкриття форми пошуку
  }
});

У цьому прикладі ми обробляємо клавіші стрілок (вліво та вправо) для навігації сторінкою або додатком. Це корисно в ситуаціях, коли потрібно забезпечити управління клавіатурою для покращення зручності користувача, наприклад, у слайдерах або галереях.

document.addEventListener('keydown', function(event) {
  switch (event.which) {
    case 37:
      console.log('Перехід на попередню сторінку.');
      // Логіка для переміщення назад
      break;
    case 39:
      console.log('Перехід на наступну сторінку.');
      // Логіка для переміщення вперед
      break;
  }
});