【问题标题】:In Java Script Global Variable is not clear [duplicate]在 Java Script 全局变量中不清楚 [重复]
【发布时间】:2015-10-08 06:41:00
【问题描述】:

我已经在 java 脚本中声明了全局变量,我尝试使用以下代码清除但不清楚。

正如我定义的全局变量。

var usno;

然后在设置值之前我尝试了以下代码

delete window.usno;
usno = undefined;
usno=null;

但没有成功。

请帮忙

谢谢 巴斯特。

【问题讨论】:

  • “没有成功”在什么地方?你想做什么?你预计会发生什么?

标签: javascript


【解决方案1】:

简而言之,您不能删除用var 定义的变量。如果您使用window.usno 设置变量,则可以。有关详细信息,请参阅Understanding deleteHow to unset a JavaScript variable? 的答案。

你真的需要删除变量吗?不要创建全局变量,而是将变量的范围限制为函数,以便在函数范围结束后将其作为垃圾回收。

【讨论】:

  • 不知道要不要删除。当用户登录usno中保存的值时,我使用的目的是什么。假设当我在用户“A”登录时运行登录屏幕时,我将 A 值保存在 usno 中,当用户“B”登录时,我将 B 值保存在 usno 中。但问题总是“A”值
【解决方案2】:

您的第一个解决方案是正确的。

delete window.usno;

这将从全局 window 对象中删除属性 usno。但是,当我们对其进行测试时,这就是混乱所在:

window.usno; // -> undefined

因此,已删除或不存在的属性会返回 undefined。因此,实际上,以下两个语句实现了大致相同的目标:

delete window.usno;
window.usno = undefined;

它们完全不是一回事。在第二种情况下,usno 属性仍然存在,如果您遍历了window 的所有属性,您会发现。

简答:

delete window.usno;

【讨论】:

  • 不工作,正如我告诉你的那样,我使用了我的三行代码但没有成功。
猜你喜欢
  • 2013-05-24
  • 1970-01-01
  • 2022-01-28
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多