Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Kраще писати if (floor >= 4 && floor <= 6) ніж if (floor > 3 && floor < 7), адже якби в задачі йшлося не про поверхи, а про щось інше, то користувач вводив би не тільки цілі числа. Тому умова виконувалася б для чисел від 3,1 або 3,01, а не від 4.
- >> Так, тут ви більше за мене побачили, і ви праві!)
- Я ж мав на увазі ще той аспект, що використовувати саме ті числа, що
- фігурують у задачі (у предметній області) допоможе точніше "перенести" цю саму предметну область (бізнесову логіку).
- А ще згодом ви не будете використовувати такі числа у коді, як не використовують їх всі добрі програмісти. Такі числа називаються "магичними" - бо у того, хто буде читати код виникне питання, а чому 4? чому не 5, чи 15? що за магія? І щоб зберегти логіку програми та не писати в коді магічних чисел ви будете робити константи та змінні з іменами, що відповідають на це питання (а чому саме таке число). наприклад так:
- const lowPrivateFloor = 4;
- const hiPrivateFloor = 6;
- if (floor >= lowPrivateFloor && floor <= hiPrivateFloor)
- хоча тут краще вказати range в масиві та перевіряти чи належить введений поверх до цього масиву, але теж згодом.
- let password = +prompt('Введіть пароль (4 цифри)') // **
- if (password === 1337) { //Оператор === порівнює тільки однакові типи даних (а інакше виводить false). Якщо написати +prompt замість звичайного prompt - введені користувачем числа сприйматимуться саме як числа, а не рядки (додала у рядки * та ** хоча саме в цьому випадку нас цікавить лише **). Другий варіант поки не спадає на думку((
- >> Супер, все вірно, я б сказав трохи інакше, що "=== порівнює тільки однакові типи даних" - насправді він порівнює і різні типи, але для них результат порівняння буде фалсе, тобто різні. === перевіряє повну ідентичність включаючи тип.
- Другий варіант такий:
- let password = prompt('Введіть пароль (4 цифри)') // **
- if (password === '1337') // порівнюємо строку зі строкою
- alert('OK') // Мені здається, що alert краще, адже поки користувач не розбереться з модальним вікном, яке викликає ця функція, він не зможе взаємодіяти зі сторінкою.
- >> Алерт це команда браузера, в джаваскрипті її нема, тобто якщо код запустити не в браузері , а, наприклад, в Node.js то алерт там не існує, а ось консолька є скрізь)
- // Зробила перший крок до оптимізації коду - присвоїла значення 'OK' змінній, але трошки закипів мозок, далі діло не пішло(
- // Прибрала зайвий else з вашого коду, дійсно можна і без нього, адже ви вже розписали у другому if, що робити у разі, якщо перший if приймає хибне значення. - так.
- >> більше цю оптимізацію не буду пропонувати до розглядання, бо більше заважає, ніж корисна. Ваша реакція на неї корректа!
- Дякую, мені було цікаво почути ваші відповіді!
Advertisement
Add Comment
Please, Sign In to add comment