[英]Why var variable in javascript become global when used in for loop?
有人告诉我var在javascript中定义的变量将是本地的。
例如:
function myFunc(){var v=100; return v;}
如果您在函数之外访问v,您将点击
Uncaught ReferenceError: v is not defined
但是后来我发现在in for循环中使用var定义的变量成为全局变量。 例如
for(var i=0;i<10;i++){/*do nothing*/}
在for循环之后,您仍然可以访问变量i。 为什么它成为全球性的? 在功能和for循环中使用时有什么区别?
在JavaScript中, var
仅作用于下一个function
作用域,而忽略所有其他类型的块(if,for,while等)。
您可以使用let
来解决此问题,而范围仅限于块。 还要查看const
,其行为与let
相同,但是不能重新分配。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.