如何范围尝试声明到finally块也?

时间:2017-02-06 21:24:10

标签: javascript

有没有一种方法可以在不使用var关键字的情况下在finally块中定义年龄?我还没有找到办法做到这一点,我觉得有点奇怪,所以我假设有办法。

try{
    let age=prompt("What is your age?");
    if(age<=0){
        throw new Error("Your age can not be " + age + " please type your real age.");
    }
    else if(typeof age==="string"){
        throw new Error("What is not a number please type a number");
    }
    else if((age % 1) != 0){
            throw new Error("Please type an whole number");
    }
}
catch(e){
    console.log(e)
}
finally{
    parseInt(age);// age come up as undefined
}

1 个答案:

答案 0 :(得分:1)

没有理由将提示放在try内,只是将变量声明在它之外。如果需要,您仍然可以使用块进行本地作用域。

{
    let age =prompt("What is your age?");
    try {
        …
    } catch(e) {
        console.log(e)
    }
    console.log(parseInt(age));
}