使用或不使用var声明函数是否更好?

时间:2012-01-20 14:28:42

标签: javascript function

  

可能重复:
  Difference between using var and not using var in JavaScript

我看到人们在javascript中声明函数的方法有两种。之一:

foo = function()
{
  //Do stuff
}

var foo = function()
{
  //Do stuff
}

我是javascript的新手,想知道两者之间是否存在真正的差异。是否比另一个更好用,还是取决于具体情况?

3 个答案:

答案 0 :(得分:1)

AFAIK,如果您未说明var,那么您的函数将被分配到全局范围(与window对象相同的范围级别),但是如果您将其声明为var它将包含在其父范围内。

编辑:在Tomalak的响应之后澄清,该函数将属于其父作用域,但是如果父作用域是一个执行的函数,则在执行封闭函数之后,任何声明没有var的函数都可以在全球背景。

答案 1 :(得分:0)

有两种方法:

  • 在变量中声明它
  • 使用默认功能声明

在您的情况下,您尝试在变量中声明它。声明变量(无论是否为函数)以var语法开头。

var foo = function() { }; // please note that semicolon (;)

正常定义函数时:

function foo() { }

因此,在您的情况下,var是必需的,除非您预先定义它:

var foo;
foo = function() { };

编辑:正如詹姆斯所说,如果你想在全球范围内定义它,你可以放弃var关键字。但说实话,如果您希望在另一个范围级别定义变量,那么预定义变量仍然是一种更好的做法。

答案 2 :(得分:0)

最好使用var声明,否则您可能会影响全局范围中的任何其他var。有关详情,请查看此问题:What is the scope of variables in JavaScript?