Timkor

niceAnswers

Dec 15th, 2020 (edited)
576
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Kраще писати if (floor >= 4 && floor <= 6) ніж if (floor > 3 && floor < 7), адже якби в задачі йшлося не про поверхи, а про щось інше, то користувач вводив би не тільки цілі числа. Тому умова виконувалася б для чисел від 3,1 або 3,01, а не від 4.
  2.  
  3. >> Так, тут ви більше за мене побачили, і ви праві!)
  4. Я ж мав на увазі ще той аспект, що використовувати саме ті числа, що
  5. фігурують у задачі (у предметній області) допоможе точніше "перенести" цю саму предметну область (бізнесову логіку).
  6. А ще згодом ви не будете використовувати такі числа у коді, як не використовують їх всі добрі програмісти. Такі числа називаються "магичними" - бо у того, хто буде читати код виникне питання, а чому 4? чому не 5, чи 15? що за магія? І щоб зберегти логіку програми та не писати в коді магічних чисел ви будете робити константи та змінні з іменами, що відповідають на це питання (а чому саме таке число). наприклад так:
  7. const lowPrivateFloor = 4;
  8. const hiPrivateFloor = 6;
  9. if (floor >= lowPrivateFloor && floor <= hiPrivateFloor)
  10. хоча тут краще вказати range в масиві та перевіряти чи належить введений поверх до цього масиву, але теж згодом.
  11.  
  12.         let password = +prompt('Введіть пароль (4 цифри)') // **
  13.         if (password === 1337) { //Оператор === порівнює тільки однакові типи даних (а інакше виводить false). Якщо написати +prompt замість звичайного prompt - введені користувачем числа сприйматимуться саме як числа, а не рядки (додала у рядки * та ** хоча саме в цьому випадку нас цікавить лише **). Другий варіант поки не спадає на думку((
  14.  
  15. >> Супер, все вірно, я б сказав трохи інакше, що "=== порівнює тільки однакові типи даних" - насправді він порівнює і різні типи, але для них результат порівняння буде фалсе, тобто різні. === перевіряє повну ідентичність включаючи тип.
  16. Другий варіант такий:
  17.            
  18.         let password = prompt('Введіть пароль (4 цифри)') // **
  19.         if (password === '1337') // порівнюємо строку зі строкою
  20.  
  21.             alert('OK') // Мені здається, що alert краще, адже поки користувач не розбереться з модальним вікном, яке викликає ця функція, він не зможе взаємодіяти зі сторінкою.
  22.  
  23. >> Алерт це команда браузера, в джаваскрипті її нема, тобто якщо код запустити не в браузері , а, наприклад, в Node.js то алерт там не існує, а ось консолька є скрізь)
  24.  
  25. // Зробила перший крок до оптимізації коду - присвоїла значення 'OK' змінній, але трошки закипів мозок, далі діло не пішло(
  26. // Прибрала зайвий else з вашого коду, дійсно можна і без нього, адже ви вже розписали у другому if, що робити у разі, якщо перший if приймає хибне значення. - так.
  27.  
  28. >> більше цю оптимізацію не буду пропонувати до розглядання, бо більше заважає, ніж корисна. Ваша реакція на неї корректа!
  29.  
  30. Дякую, мені було цікаво почути ваші відповіді!
  31.  
Advertisement
Add Comment
Please, Sign In to add comment