javascript – 为什么初始化导致漏洞泄漏的几个变量?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么初始化导致漏洞泄漏的几个变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我指的是 JavaScript var hoisting的文档,在一个部分我发现了 Initialization of several variables,下面给出了 Example.
var x = 0;

function f(){
  var x = y = 1; 
}
f();

console.log(x,y); // outputs 0,1
// x is the global one as expected
// y leaked outside of the function,though!

我假设将异常作为未捕获引用错误:y未定义.
但由于泄露的范围没有发生,它显示0,1.

我能否知道为什么会发生这种情况以及是什么导致这种情况发生的.
最后任何与性能相关的问题

解决方法

你没有宣布你.
var x = y = 1;

相当于

y = 1;
var x = y; // actually,the right part is precisely the result of the assignement

一个undeclared variable is a global variable(除非你在strict mode,然后这是一个错误).

你所指的例子是不同的,有一个逗号,is part of the multiple declaration syntax.

你可以修复你的代码

var y=1,x=y;
原文链接:https://www.f2er.com/js/149998.html

猜你在找的JavaScript相关文章