【问题标题】:What's the difference between var myvar; and var myvar= null;?var myvar 和有什么区别?和 var myvar= null;?
【发布时间】:2013-02-14 17:14:11
【问题描述】:

有什么区别

var myvar;

var myvar = null;

?

我刚刚在专业代码中看到了 next next 并且想知道这是怎么回事......

【问题讨论】:

  • 简单地说:var myvar;刚刚声明了一个变量,但变量还是undefined。另一方面,var myvar = null;myvar 设置为 null
  • undefinednull 是不同的东西。

标签: javascript


【解决方案1】:

创建myvar(在当前范围内)并且不为其赋值(留下=== undefined)。

另一个也给它分配了null

null 的赋值可能很重要,具体取决于其他代码如何与变量交互。 OTOH,这可能是因为对它的含义缺乏理解。

【讨论】:

  • 跟进:可以设置一个变量为未定义的吗?
  • 是的,你可以。 undefined 是全局范围的属性,默认保存 undefined 原语。
  • 甜蜜 - TYVM!我一直在摸索!
【解决方案2】:

如果您尝试var myvar;,您已将myvar 定义为undefined,这意味着它根本没有被分配一个值。

但是当您尝试 var myvar = null; 时,您已将 null 文字 分配给 myvar,这意味着该变量表示 null、空或不存在的引用。

【讨论】:

  • 请注意,除非您使用===,否则您可能不会注意到差异; nullundefined 比较松散相等。但是会有一些代码确实很重要。
  • @cHao,是的,比较确实如此。额外的代表以获得好的提示。
【解决方案3】:

我更喜欢使用var myvar = null;

为什么?

如果我要检查该值是否在将来设置,null 表示它尚未设置,而 undefined 表示尝试在代码中的某处设置myvar 时可能出错。

还有一些其他的意见 - What reason is there to use null instead of undefined in JavaScript?

【讨论】:

  • undefined 表示尚未设置值;它基本上意味着“我不知道”,如果你不指定一个值,这就是你得到的。 null 表示该值已设置,但明确设置为空。至于不知道您的值是否已分配...如果您在知道是否某些错误阻止设置值时遇到了很多问题,那么您可能遇到了太多异常。 :P 我从来没有遇到过这样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2019-09-21
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多