js提前在局部作用域的外面声明了一个变量, 然后在局部作用域里面赋值,再到全局外面取这个赋值后的变量,.却读取不到是什么原因呢?
var new_time;
setInterval(function(){
if(code_time<=30&&code_time>0){
code_time--;
$("#send-code").text(code_time+"S");
new_time=code_time;
console.log(new_time) //输出正常值
}
// else{
// $("#send-code").removeAttr("disabled");
// $("#send-code").text("发送验证码");
// $("#send-code").css("background","#e32f1c");
// }
},1000);
console.log(new_time) // 输出undefined
想在全局外面读取局部里面赋值后的变量 new_time.. 但是读取到最上面未赋值的变量输出undefined
setInterval
异步执行,也就是说打印的时候,该函数还没执行,也就没有作出改变,也就返回undefined
。你可以这么修改: