Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Калькулятор на JS  (Прочитано 127104 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ATVStudio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Калькулятор на JS
« : 07 Июля 2024, 16:45:29 »
Здравствуйте!
Закодил простой калькулятор на js! В принципе основные моменты работают... но есть одно но... почему работает вот этот код?
                     case '<=':
                                if (display.textContent = display.textContent.slice(0, -1)) {
                                } else {
                                        display.textContent = '0';
                                }
                                break;

Почему срабатывает данное условие?? не пойму!!!
В архиве приложил весь код!

Лия

  • Гость
Re: Калькулятор на JS
« Ответ #1 : 07 Июля 2024, 17:04:56 »
if (display.textContent = display.textContent.slice(0, -1)) {
Может вы хотели
if (display.textContent == display.textContent.slice(0, -1)) {?
« Последнее редактирование: 07 Июля 2024, 17:15:00 от Лия »

Оффлайн ATVStudio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Калькулятор на JS
« Ответ #2 : 07 Июля 2024, 17:25:46 »
Цитата: ATVStudio от Сегодня в 16:45:29
if (display.textContent = display.textContent.slice(0, -1)) {
Может вы хотели
Код: [Выделить]
if (display.textContent == display.textContent.slice(0, -1)) {
?
Нет... код работает как и должен... вопрос почему он работает ведь тут условие и есть код выполнение а после условия пусто...

Лия

  • Гость
Re: Калькулятор на JS
« Ответ #3 : 07 Июля 2024, 17:46:59 »
вопрос почему он работает ведь тут условие и есть код выполнение а после условия пусто...
А почему это он не должен работать? :)
Как же работает ваш код:
Сначала выполняется
display.textContent = display.textContent.slice(0, -1))затем, присвоенное display.textContent значение подставляется в if
Если оно истинно (true) - ничего не выполняется, если ложно (false), выполняется else
Ваш код можно переписать так, и ничего не изменится:
                        case '<=':
                                display.textContent = display.textContent.slice(0, -1);
                                if (display.textContent) { } else { display.textContent = '0'; }
                                break;
Или даже так:
                        case '<=':
                                display.textContent = display.textContent.slice(0, -1);
                                if (!display.textContent) { display.textContent = '0'; }
                                break;
Так понятнее? :)

Пользователь добавил сообщение 07 Июля 2024, 17:54:42:
Но я не рекомендую использовать присвоение в if, если нет понимания, как оно работает и чего вы пытаетесь добиться :)
« Последнее редактирование: 07 Июля 2024, 17:57:33 от Лия »

Оффлайн ATVStudio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Калькулятор на JS
« Ответ #4 : 07 Июля 2024, 17:57:20 »
Код: [Выделить]
                        case '<=':
                                display.textContent = display.textContent.slice(0, -1);
                                if (!display.textContent) { display.textContent = '0'; }
                                break;
Так понятнее?
Да понятно.. я просто не мог понять что условие по факту и выполняло код.. что это и так работает...

Пользователь добавил сообщение 07 Июля 2024, 18:33:02:
Но я не рекомендую использовать присвоение в if, если нет понимания, как оно работает и чего вы пытаетесь добиться
Изначально я делал так    
                      case '<=':
                                if (display.textContent !== '') {display.textContent = display.textContent.slice(0, -1)}
                                else {display.textContent = '0'}
                                break;

но оно не корректно работало..
« Последнее редактирование: 07 Июля 2024, 18:34:14 от ATVStudio »

Лия

  • Гость
Re: Калькулятор на JS
« Ответ #5 : 07 Июля 2024, 18:50:15 »
Изначально я делал так
Код: [Выделить]

   
                      case '<=':
                                if (display.textContent !== '') {display.textContent = display.textContent.slice(0, -1)}
                                else {display.textContent = '0'}
                                break;


но оно не корректно работало..
Вы сначала сравниваете, а потом присваиваете, а надо наоборот
Я выше скидывала код, как правильно
Но и ваш можно легко исправить:
                      case '<=':
                                if (display.textContent.slice(0, -1) !== '') {display.textContent = display.textContent.slice(0, -1)}
                                else {display.textContent = '0'}
                                break;

Оффлайн ATVStudio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Калькулятор на JS
« Ответ #6 : 07 Июля 2024, 18:52:47 »
Но и ваш можно легко исправить:
Код: [Выделить]
                      case '<=':
                                if (display.textContent.slice(0, -1) !== '') {display.textContent = display.textContent.slice(0, -1)}
                                else {display.textContent = '0'}
                                break;
Да понял ошибку! Спасибо!

 

Страница сгенерирована за 0.085 секунд. Запросов: 25.