A linguagem de programação JavaScript tem suporte a diversos paradigmas de programação. Dessa forma, temos recursos importantes disponíveis que facilitam a vida do desenvolver de aplicativos, como a possibilidade de utilizar funções de alta ordem. Indique a opção que representa a descrição de funções de alta ordem:
Questão
A linguagem de programação JavaScript tem suporte a diversos paradigmas de programação. Dessa forma, temos recursos importantes disponíveis que facilitam a vida do desenvolver de aplicativos, como a possibilidade de utilizar funções de alta ordem. Indique a opção que representa a descrição de funções de alta ordem:
Alternativas
a) Diferenciação de maiúsculo e minúsculo nas declarações.
b) Disponibilidade de funções como “while”, “if” e “for”.
c) Suporte a herança, polimorfismo, encapsulamento e abstração.
d) Possibilidade de uso opcional do ponto e vírgula.
e) Capacidade das funções de receber e retornar valores ou funções.
Explicação
Funções de alta ordem (higher-order functions) são aquelas que podem receber outras funções como argumento e/ou retornar uma função como resultado. Em JavaScript isso é possível porque funções são valores de primeira classe (podem ser atribuídas a variáveis, passadas como parâmetro e retornadas).
Analisando as alternativas:
- a) Trata de case sensitivity, não tem relação com alta ordem.
- b) While/if/for são estruturas de controle, não funções de alta ordem.
- c) Conceitos de POO (herança, polimorfismo etc.), não descrevem alta ordem.
- d) Ponto e vírgula opcional é característica de sintaxe (ASI), não é alta ordem.
- e) Descreve exatamente a ideia: funções podem receber e retornar funções/valores.
Alternativa correta: (e).