2013-02-14 60 views
1

什么var myvar有什么区别;和var myvar = null;?

var myvar; 

var myvar = null; 

之间的区别?

我刚看到这两个毗邻未来专业代码,不知道这是怎么一回事......

+2

简单地说:'VAR MYVAR;'只是声明的变量,但变量仍是'undefined'。另一方面,'var myvar = null;'将'myvar'设置为'null'。 – voithos 2013-02-14 17:15:50

+2

['undefined'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined)和['null'](https://developer.mozilla.org/en- US/docs/JavaScript/Reference/Global_Objects/null)是不同的东西。 – VisioN 2013-02-14 17:18:14

回答

5

一个创建myvar(在当前范围内),并分配没有价值给它(离开它=== undefined) 。

另一个也给它分配null

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

+0

跟进:你可以设置一个变量为未定义? – 2013-02-14 17:18:14

+0

是的,你可以。 'undefined'是全局作用域的属性,默认保持'undefined'原语。 – Quentin 2013-02-14 17:19:23

+0

甜 - TYVM!我一直在暗示坚持! – 2013-02-14 17:20:41

0

如果您尝试var myvar;您已将myvar定义为undefined这意味着它只是未分配一个值。

但是当你尝试var myvar = null;您分配了null文本myvar,这意味着变量表示空,空,或不存在的参考。

+1

请注意,除非您使用'===',否则您可能不会注意到区别; 'null'和'undefined'大致相等。但是会有一些关心的代码。 – cHao 2013-02-14 17:27:44

+0

@cHao,是的,这是真的比较。提示代表好的提示。 – Ramin 2013-02-14 17:32:55

0

我更喜欢使用var myvar = null;

为什么?

如果我正在检查将来是否设置了该值,则表示它尚未设置,其中undefined表示在尝试在代码中的某处设置myvar时可能存在错误。

下面有一些其他的意见,以及 - What reason is there to use null instead of undefined in JavaScript?

+0

'undefined'表示尚未设置值;它基本上意味着“我不知道”,如果你没有指定一个值,那就是你所得到的。 'null'表示值已设置,但明确设置为空。至于不知道你的值是否被赋值......如果你知道某个错误是否阻止了设置值,那么你可能会遇到太多的异常。 :P我从来没有遇到过这样的问题。 – cHao 2013-02-14 19:04:51

相关问题