You variable is indeed defined, but not in the current scope. Simply, return the variable values from the functions in the verify
function:
// verify
function verify() {
function stringv() {
let name = window.prompt('please enter your name:');
if (name === null || name === "") {
alert('please enter your name!')
stringv();
} else if (!/^[a-zA-Z]+$/.test(name)) {
alert("your entered name isn't allowed!")
stringv();
} else {}
return name
}
function stringln() {
let lastn = window.prompt('please enter your lastname');
if (lastn === null || lastn === "") {
alert('please enter your lastn!')
stringln();
} else if (!/^[a-zA-Z]+$/.test(lastn)) {
alert("your entered lastname isn't allowed")
stringln();
} else {}
return lastn
}
function agev() {
let age = "invalid"
let errorMessage = ""
while (!(age > 0)) {
age = window.prompt(errorMessage + 'Enter ur Age');
errorMessage = "'"
' + age + '
" isn't a number"
}
return age
}
// Function calling
let name = stringv();
let lastn = stringln();
let age = agev();
// console.log
let output;
output = 'Hello ' + name + ' ' + lastn + ' ' + age + '-years-old';
console.log(output)
}
<button onclick="verify()">Enter Your name:</button>