Я изучаю веб-разработку и начинаю свое путешествие с node.js (уже работал над JS), поэтому извините, если мой вопрос - вопрос Нуба :) Я уже нашел несколько похожих вопросов на форуме, но не совсем то же самое, и до сих пор не понимаю, что происходит.
Я не знаю, почему typeof не работает в node.js, так как он работает с JS в консоли. Мне удалось заставить его работать с функцией isNaN , но кто-то может объяснить мне, что происходит с функцией typeof?
process.stdin.resume()
process.stdin.setEncoding('utf8')
console.log('What\'s your age ? ')
process.stdin.on('data', (int) => {
if (int > 99 ) {
console.log('Enter an age below 99')
} else if (typeof int != 'number') {
console.log('Enter a number')
console.log(int)
console.log(typeof int)
} else {
let year = 2020 - int
if (year > 2020) {
console.log("Year is above 2020")
} else {
console.log('Hello you were born in ' + year)
}
}
process.exit()
})
Попытка с возрастом 39, это регистрирует 'Введите число ', даже если это цифра c запись ...! Console.log (typeof int) дает мне 'string'.
Если я изменяю код с помощью функции isNan, она отлично работает:
process.stdin.resume()
process.stdin.setEncoding('utf8')
console.log('What\'s your age ? ')
process.stdin.on('data', (int) => {
if (int > 99 ) {
console.log('Enter an age below 99')
} else if (isNaN(int)) {
console.log('Enter a number')
console.log(int)
console.log(typeof int)
} else {
let year = 2020 - int
if (year > 2020) {
console.log("Year is above 2020")
} else {
console.log('Hello you were born in ' + year)
}
}
process.exit()
})
Имеет ли это какое-то отношение к процессу. заявление stdin.on? Большое спасибо за ваши ответы!