.length переменной обнуляется

133
19 ноября 2020, 23:40

Пишу окно ввода для калькулятора - ограничиваю 15 по длине

window.onkeydown = function (num) {
    if ( Screen_total.length < '15' ) {
        if ( keys[num.keyCode] == 'backspace' ) {
            Screen_total = Screen_total/10;
            Screen_total = Screen_total - (Screen_total%1);
            toScreen(Screen_total);
            console.log('Длина:' + Screen_total.length);
        } else {
            console.log(keys[num.keyCode] + ' (клавой)');
            if ( Screen_total != '' ) {
                Screen_total = Screen_total + keys[num.keyCode];
            } else {
                Screen_total = keys[num.keyCode];
            }
            console.log('Длина: ' + Screen_total.length);
            toScreen(Screen_total);
        }
    }
}
  1. Если оставляю ограничение до 15, то после первого backspace все виснет, и цифры не вводятся и backspace уже не работает
  2. Если убираю ограничение, то все работает, но ограничения о уже нет...
Answer 1

У вас проблемы с приведением типов и немного с самой логикой условия

const keys = {"48":"0","49":"1","50":"2","51":"3","52":"4","53":"5","54":"6","55":"7","56":"8","57":"9","8":"backspace"}; 
let Screen_total = ""; 
function toScreen(Scr) {}; 
 
window.onkeydown = function (num) { 
  if ( keys[num.keyCode] === 'backspace' ) { 
    Screen_total = Screen_total/10; 
    Screen_total = String(Screen_total - (Screen_total%1)); 
    toScreen(Screen_total); 
    console.log(Screen_total, 'Длина:' + Screen_total.length); 
  } else if ( Screen_total.length < '15' ) { 
    console.log(keys[num.keyCode] + ' (клавой)'); 
    if ( Screen_total != '' ) { 
      Screen_total = String(Screen_total + keys[num.keyCode]); 
    } else { 
      Screen_total = String(keys[num.keyCode]); 
    } 
    console.log('Длина: ' + Screen_total.length); 
    toScreen(Screen_total); 
  } 
}

READ ALSO
Django. Как сделать зависимый выпадающий список с помощью JS?

Django. Как сделать зависимый выпадающий список с помощью JS?

Подскажите, пожалуйста, если не сложно, как правильно написать скрипт, чтобы при выборе региона отображались города только этого региона,...

136
Как работает память в js

Как работает память в js

Существует 2 упрощения - к доступу объектам по ссылкам

156
Vue JS. Сохранение данных формы

Vue JS. Сохранение данных формы

Всем приветРаботаю с Vue JS

189
Как избежать повторения страниц в react?

Как избежать повторения страниц в react?

Не понимаю как можно сделать несколько страниц с контентом не создавая при этом отдельной папки для каждой страницы и повторять все те же функции,...

229