Javascript功能的差异,有没有?

时间:2016-10-15 04:02:09

标签: javascript function

当我在js中运行一个函数时,似乎工作正常,但这样会好吗?

function myfunction(){ }

VS

var myfunction = function(){ }

因为两者被称为相同所以它没有区别? 对不起新来的js所以我只是确保学习这种风格很好。 (第一个功能是我更喜欢使用的。)

2 个答案:

答案 0 :(得分:1)

W3Schools Function guide

所示
  

您可以使用功能声明或功能表达式

一般情况都是一样的。认为有一些事情需要考虑:

  • 在函数表达式中,仅在代码中的该行到达时定义该函数
  • 在函数解除中,函数在代码运行后立即定义,因此可以在代码中编写之前调用它(由于hoisting

您编写的第一个示例是函数声明

您编写的第二个示例是函数表达式

两者之间的唯一区别是在定义它们之后如何在代码中调用它们。

如果您想知道哪个更好,那么这一切都归结为您更熟悉并认为其语法更具可读性,同时尽量不要混淆两者以保持代码中的约定。

答案 1 :(得分:1)

此问题已在link处提出, 其中一个基本的区别来自声明,例如: -

foo();
var foo = function(){
console.log('hi');
}

会导致未定义,因为它在声明之前被调用,另一方面,

foo();
function foo(){
console.log('hi');
}
would console 'hi' with no problem, for further insight check the above link.