Member 12823445 Ответов: 3

Проблема с javascript


Привет ребята,
Я получил не реагирующий код типа JavaScript. Код прекрасно работает до тех пор, пока не достигнет строки 4, а больше ничего не произойдет. Там нет никакого предупреждающего сообщения.
вот код.:


var ageAsString = prompt("what is your age? ", "");
var age = number(ageAsString);
alert(age);
if (age < 40) {
    alert("You are so young...");
} else {
    alert("Ok");
}

alert("thank you");


код написан в VS 2017.
Спасибо,
Аври

Что я уже пробовал:

Я пытался запустить его в нескольких браузерах и получил те же результаты.

Если я запускаю код из тега, все работает прекрасно.
Проблема возникает, когда я вызываю этот код, вставляя ссылку на него

3 Ответов

Рейтинг:
24

User 7429338

Проблема в чувствительности к регистру :)

var age = number(ageAsString);


Должно быть:

var age = Number(ageAsString);


Рейтинг:
17

Andy Lanng

не знаете, откуда вы взяли функцию "номер"?

попробуйте parseInt

var ageAsString = prompt("what is your age? ", "");
var age = parseInt(ageAsString);
alert(age);
if (age < 40) {
    alert("You are so young...");
} else {
    alert("Ok");
}

alert("thank you");


вам следует изучить отладку javascript:
Отладка JavaScript[^]


Andy Lanng

О, теперь я понимаю, откуда ты это взял ^_^

[no name]

однако parseInt тоже работает, так что это тоже хорошее решение.

Рейтинг:
0

Cadmos

.
На самом деле нет необходимости просто создавать дополнительную переменную и использовать ее только в качестве модификатора типа данного значения.

Однако вы Действительно нужно чтобы проверить, что пользователь вводит что-то, что является типом числа, а не какой-либо другой строкой.

var ageAsString = prompt("what is your age? ", "");
var age = Number(ageAsString);

// you convert input string to Integer immediately, no need to create extra variable
var age = parseInt(prompt("what is your age?", "")); 


// you first check that age is indeed a number and not a Not A Number (NaN)

if (isNaN(age)) { // if age is NaN then alert the user to stop messing around

    alert("You have to insert a number mate")

// in any other case , the script continues to do your stuff
} else { 

    alert(age);

    if (age < 40) {
        alert("You are so young...");
    } else {
        alert("Ok");
    }

}

alert("thank you") // you are welcome

Теперь есть подвох, если вы поставите, скажем так 23a он будет проходить как число, а не как Нан.

Для этих случаев вам придется сделать более сложные валидаторы, но на данный момент я думаю, что у вас уже есть идея о том, как сделать ваш скрипт более надежным.

.