Ваш result==isNaN(result)
код никогда не запускается
// a prompt returns a string or null ( if cancelled )
// The values are casted to a number when comparing with a value of the type number
console.log( Number(null) ) // 0
console.log( Number('5') ) // 5
console.log( Number('') ) // 0
// this means the values of null and '' are never even reach your isNan() code because 0<4 resolves to true. Thus repeating your loop.
var result = prompt("Give number between 4-10");
while ( result<4 || result>10 ) {
result = prompt("You need to give number between 4-10!");
// you could break your loop if an use cancels here
if( result === null ) break;
}
alert ( `success: ${result}`)
Вы можете использовать рекурсию вместо while l oop
askUser();
function askUser(){
let answer = prompt('Hello would you please enter a number between 4 and 10?');
if( answer>4 && answer<10 )
alert('Thank you, you are awesome!')
else if( answer === null )
alert('Really you can\'t think of a number between 4 and 10??!?!?')
else
askUserAgain();
}
function askUserAgain() {
let answer = prompt('This is not a number between 4 and 10, you are a fool! Please try again.');
if( answer>4 && answer<10 )
alert('Thank you, you are awesome!')
else if( answer === null )
alert('Really you can\'t think of a number between 4 and 10??!?!?')
else
askUserAgain();
}