首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段代码泄漏的原因是什么?

这段代码泄漏的原因是什么?
EN

Stack Overflow用户
提问于 2011-07-07 08:22:10
回答 1查看 61关注 0票数 1

有人告诉我,这段代码在这个previous post中泄漏了a1、a2、a3

代码语言:javascript
复制
function t1()
  {
  var a=document.forms['f1'].elements;
  a1="Please fill out all fields";
  a2="Please enter your name using only letters and dashes";
  a3="Please enter a valid email address";
  a4="Password must be atleast 6 characters";
  if(c0(a,a1,'fb2')&&c1(a,a2,'fb2')&&c2(a[2],a3,'fb2')&&c3(a[3],a4,'fb2'))
    {
    return 1;
    }
  else
    {
    return 0;
    }
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-07 08:24:55

似乎在上一篇文章中,“泄漏”指的是变量a1a4在函数t1()的作用域中没有正确声明。如果没有var关键字,它们将成为全局变量。

代码语言:javascript
复制
var a1="Please fill out all fields";
var a2="Please enter your name using only letters and dashes";
var a3="Please enter a valid email address";
var a4="Password must be atleast 6 characters";

您可能打算以逗号,而不是分号;来结束每一行,这会将它们链接到共享第一个var关键字的单个语句中。在这种情况下,它们就不会变得全球化。只需确保用;终止最后一个。但是,我认为像我上面所做的那样,将每个语句都保留为自己的语句更具可读性,也是更好的做法。

有很多关于JS变量泄漏的博客文章。Here's one I just found to get you started...

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6604538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档