Diferença entre var functionName = function() {} e function functionName() {} em JavaScript
Olá, colegas! Sou um desenvolvedor front-end iniciante e me deparei com uma confusão. Em diferentes projetos e tutoriais, vejo duas maneiras de declarar funções:
```javascript
// Maneira 1: Function Expression (expressão de função)
var myFunc = function() {
console.log("Hello from expression!");
};
// Maneira 2: Function Declaration (declaração de função)
function myFunc() {
console.log("Hello from declaration!");
}
```
À primeira vista, elas fazem a mesma coisa. Mas quando comecei a escrever código mais complexo, notei um comportamento estranho. Por exemplo, se eu chamo a função antes de sua declaração, uma maneira funciona, enquanto a outra gera um erro:
```javascript
// Isso funciona
sayHello(); // Exibe "Hello!"
function sayHello() {
console.log("Hello!");
}
// Isso gera um erro
sayGoodbye(); // TypeError: sayGoodbye is not a function
var sayGoodbye = function() {
console.log("Goodbye!");
};
```
Por que isso acontece? Qual é a diferença fundamental entre essas duas?
No answers yet.
Faça login para deixar uma resposta