Тази публикация е публикувана първоначално на 11 февруари 2020 г. в моят блог.
За последния ми страничен проект за кодиране, Игра със зарове (адаптиран от моя курс по JS на Jonas Schmedtmann в Udemy), една част от логиката на програмата изисква хвърлянето на зарчето да доведе до променлива, съдържаща случайно число между 1 и 6.
В зависимост от това кой номер регистрира променливата, едно от шестте изображения на лицето на зара след това се показва на екрана с малко изящна манипулация на DOM.
Когато за първи път писах кода, първоначалната ми мисъл беше да напиша оператор if/else с всички условия на случайната променлива, съответстващи на всяко изображение на лицето на зара, както следва:
let dice = Math.floor(Math.random() * 6) + 1;
let diceImage = document.querySelector('.dice');
diceImage.style.display = 'block';
if (dice === 1) {
diceImage.src = 'dice-1.png';
} else if (dice === 2) {
diceImage.src = 'dice-2.png';
} else if (dice === 3) {
diceImage.src = 'dice-3.png';
} else if (dice === 4) {
diceImage.src = 'dice-4.png';
} else if (dice === 5) {
diceImage.src = 'dice-5.png';
} else if (dice === 6) {
diceImage.src = 'dice-6.png';
}
Но след това научих, че мога да актуализирам diceImage.src, използвайки принуда на типа, като добавя части от името на изображението като низ със съответния номер на изображението, поставен между:
let diceImage = document.querySelector('.dice');
diceImage.style.display = 'block';
diceImage.src = 'dice-' + dice + '.png';
Ето! Три реда код вместо шестнадесет!
Именно такива неща ме карат да се вълнувам от JavaScript и неговите (и моите!) възможности. Не само има много страхотни концепции за програмиране, които да продължите да учите, но има и безкрайни начини да направите кодирането на тези програми все по-четливо, ясно и ефективно.
Снимка на Fabian Grohs чрез Unsplash