Expressão de função à esquerda em JavaScript

Vamos considerar o seguinte código:

javascript+function func() {
  console.log('!');
}

Como você já sabe, esta função é uma expressão de função, apesar de ter um nome definido (já descobrimos que a presença de um nome não é um critério). Remova este sinal de mais - e obteremos uma Declaração de Função (Function Declaration):

javascriptfunction func() {
  console.log('!');
}

Vamos colocar + em uma linha antes da função - ela se tornará uma Expressão de Função (Function Expression) novamente:

javascript+
function func() {
  console.log('!');
}

E agora, após o sinal de mais, vamos colocar o número 1 e um ponto e vírgula - nossa função se tornará uma Declaração de Função (Function Declaration):

javascript+1;
function func() {
  console.log('!');
}

Por que isso acontece: porque na primeira linha há um comando completo e terminado, fechado por um ponto e vírgula. Portanto, este comando não afeta de forma alguma nossa função.

Na verdade, o ponto e vírgula pode ser removido, pois em JavaScript ele não é obrigatório - a função continuará sendo uma Declaração de Função (Function Declaration):

javascript+1
function func() {
  console.log('!');
}

Mas se após o 1 colocarmos outro sinal de mais, a função se tornará uma Expressão de Função (Function Expression):

javascript+1+
function func() {
  console.log('!');
}

Por que isso acontece: porque na primeira linha há uma expressão não finalizada - há um sinal de mais e depois dele não há nada. Portanto, o interpretador JavaScript entende que este sinal de mais se refere à linha abaixo, ou seja, à nossa função.

Se a primeira linha contiver uma expressão finalizada, o JavaScript automaticamente coloca um ponto e vírgula nela e essa expressão não afeta nossa função de forma alguma.

Задание 1

Determine se a função apresentada é uma Declaração de Função (Function Declaration) ou uma Expressão de Função (Function Expression):

javascript-
function func() {
  console.log('!');
}
Задание 2

Determine se a função apresentada é uma Declaração de Função (Function Declaration) ou uma Expressão de Função (Function Expression):

javascript-1;
function func() {
  console.log('!');
}
Задание 3

Determine se a função apresentada é uma Declaração de Função (Function Declaration) ou uma Expressão de Função (Function Expression):

javascript-1
function func() {
  console.log('!');
}
Задание 4

Determine se a função apresentada é uma Declaração de Função (Function Declaration) ou uma Expressão de Função (Function Expression):

javascript1
function func() {
  console.log('!');
}
Задание 5

Determine se a função apresentada é uma Declaração de Função (Function Declaration) ou uma Expressão de Função (Function Expression):

javascript-1-
function func() {
  console.log('!');
}