В вашей randomNumber()
функция всегда возвращает строку numeri c, и вы присвоили этот номер типа строки переменной currentNumber
. После этого вы сравниваете currentNumber
(фактически строку) с oldNumber
(который на самом деле является числом). Я думаю, что проблема здесь, а также в реализации randomNumber()
. Вы должны сравнивать два значения числового типа, а не два числовых значения разных типов.
if(currentNumber > oldNumber){
winner = true;
}
В приведенном выше коде, когда вы сравниваете числовую c строку (currentNumber) и фактическое число (oldNumber), JS делает текстовое сравнение обоих операндов. randomNumber()
никогда не возвращает числовую c строку, которая начинается с «0», и вы всегда получаете числовую c строку, которая больше «0». например, currentNumber="123"
и oldNumber=0
, при сравнении этих двух, JS выполняет текстовое сравнение и преобразует другой операнд (oldNumber
) из числа 0
в число c строку '0'
. Поскольку '1'
появляется позже при сравнении с '0'
. Вы всегда будете правдой. Для получения дополнительной информации посетите это обсуждение . Попытайтесь исправить реализацию randomNumber()
и убедитесь, что она всегда возвращает значение числового типа, а не numeri c string.