Javascript中变量i的作用域
这是我的html文件。 我得到的第一个警报的输出未定义,第二个警报的输出未定义。Javascript中变量i的作用域,javascript,Javascript,这是我的html文件。 我得到的第一个警报的输出未定义,第二个警报的输出未定义。 为什么会这样?这里发生了什么?我相信这是因为我被提升了,但我的任务不是。因此,当您向i发出警报时,它指的是本地范围的i,它尚未被赋值 它最终是这样工作的: <html> <body> <script type= "text/javascript"> var i=10; function f(){ alert(i); if(!i){ var i= 20;
为什么会这样?这里发生了什么?我相信这是因为我被提升了,但我的任务不是。因此,当您向i发出警报时,它指的是本地范围的i,它尚未被赋值 它最终是这样工作的:
<html>
<body>
<script type= "text/javascript">
var i=10;
function f(){
alert(i);
if(!i){
var i= 20;
}
alert(i);
}
f();
</script>
</body>
</html>
您正在创建私有变量VARI=20;但之前你提醒我这么做没有定义…这就是为什么在javascript中你应该在顶部声明函数变量,因为javascript没有块作用域。哦,那么它又在函数内部的顶部声明了吗?你的代码最终是这样工作的:见编辑回答解决了谢谢
var i;
alert(i);
if(!i){
i = 20;
}