Bem-vindos à nossa comunidade!

Junte-se a nós e faça parte hoje mesmo!

Armazenamento da função em variaveis

Cadastro
23/12/20
Postagens
103
Curtidas
117
Pontuação
100
Cidade
Rio Branco
Fala Devs, Cristian aqui

Na aula 120 = Armazenando funções em variáveis

Quando atribuimos um novo valor para uma variavel ou constantes que está apontando para uma atribuição de função, não podemos atribuir um novo valor?....segue código abaixo;


JavaScript:
function subtrair(a, b) {
    return a - b;
}

const subtracao = subtrair;//apontando para uma função
console.log(subtrair(5, 2));
console.log(subtracao(5, 4));//chamando subtração usando a instrução da função subtrair

//função com erro pois o valor passado nao é uma funçao.
subtracao = 3
console.log(subtracao(5, 2));//typeError: Assignment to constant variable
 
Last edited:
Melhor solução
Fala Devs, Cristian aqui

Na aula 120 = Armazenando funções em variáveis

Quando atribuimos um novo valor para uma variavel ou constantes que está apontando para uma atribuição de função, não podemos atribuir um novo valor?....segue código abaixo;


JavaScript:
function subtrair(a, b) {
    return a - b;
}

const subtracao = subtrair;//apontando para uma função
console.log(subtrair(5, 2));
console.log(subtracao(5, 4));//chamando subtração usando a instrução da função subtrair

//função com erro pois o valor passado nao é uma funçao.
subtracao = 3
console.log(subtracao(5, 2));//typeError: Assignment to constant variable
Fala Cristian!

Dá uma revisadinha...

mourabraz

Membro
Moderador
Cadastro
23/12/20
Postagens
106
Curtidas
155
Pontuação
100
Cidade
Leiria
@Cristian Souza Bom dia!

O erro ocorre porque você está tentando reatribuir um valor a uma variável que foi declarada com "const".

O erro não ocorre por causa do valor, no seu caso, por ser uma função.

Caso voce usasse um "let" n ão haveria erro, pois o "let" permite a reatribuição das variáveis.


JavaScript:
function subtrair(a, b) {
    return a - b;
}

let subtracao = subtrair; //apontando para uma função
console.log(subtrair(5, 2));
console.log(subtracao(5, 4));//chamando subtração usando a instrução da função subtrair

// SEM erro pois a variável subtracao foi declarada com let e portanto permite a reatribuição.
subtracao = 3
console.log(subtracao(5, 2));

Abraços
 

Raquel

Membro
Cadastro
24/9/20
Postagens
168
Curtidas
169
Pontuação
100
Fala Devs, Cristian aqui

Na aula 120 = Armazenando funções em variáveis

Quando atribuimos um novo valor para uma variavel ou constantes que está apontando para uma atribuição de função, não podemos atribuir um novo valor?....segue código abaixo;


JavaScript:
function subtrair(a, b) {
    return a - b;
}

const subtracao = subtrair;//apontando para uma função
console.log(subtrair(5, 2));
console.log(subtracao(5, 4));//chamando subtração usando a instrução da função subtrair

//função com erro pois o valor passado nao é uma funçao.
subtracao = 3
console.log(subtracao(5, 2));//typeError: Assignment to constant variable
Fala Cristian!

Dá uma revisadinha nessa thread aqui sobre as declarações var, let e const!

De resto, é como o Mourabraz comentou, o problema é tentar substituir o valor de uma const.

Abraços!
 
Melhor solução
Cadastro
23/12/20
Postagens
103
Curtidas
117
Pontuação
100
Cidade
Rio Branco
@Cristian Souza Bom dia!

O erro ocorre porque você está tentando reatribuir um valor a uma variável que foi declarada com "const".

O erro não ocorre por causa do valor, no seu caso, por ser uma função.

Caso voce usasse um "let" n ão haveria erro, pois o "let" permite a reatribuição das variáveis.


JavaScript:
function subtrair(a, b) {
    return a - b;
}

let subtracao = subtrair; //apontando para uma função
console.log(subtrair(5, 2));
console.log(subtracao(5, 4));//chamando subtração usando a instrução da função subtrair

// SEM erro pois a variável subtracao foi declarada com let e portanto permite a reatribuição.
subtracao = 3
console.log(subtracao(5, 2));

Abraços
Agora @mourabraz quando declaro let e var me apresenta outro erro "tipo de erro", pois quando retribuir acredito eu, qualquer valor a variável ou const ele apresenta erro. Pois quando tiramos a constante 'subtração' que está apontada para função 'subtrair' tira todo processo de passagem de uma função como paramentro para outra

Será que seria esse o raciocínio?
 

mourabraz

Membro
Moderador
Cadastro
23/12/20
Postagens
106
Curtidas
155
Pontuação
100
Cidade
Leiria
Olá @Cristian Souza tudo bem?

Camarada vou ter de te pedir se puderes mostrar um exemplo de código que esteja provocando esse erro de type Error, pois não estou conseguido visualizar.

Pois quando tiramos a constante 'subtração' que está apontada para função 'subtrair' tira todo processo de passagem de uma função como paramentro para outra
Nesta parte não entendi direito. Quando você altera o uso da palavra "const" por "let" (ou "var") você está alterando a forma como aquela variável está sendo declarada, o que você faz ou não com esse valor é outro assunto. E passar funções como valor e argumentos (de outras funções) não está relacionado com a forma como a variável foi declarada, na verdade NÃO tem relação com a variável mas sim com o VALOR. Uma função poder ser usado como valor e, portanto, ser usada como argumento, é uma característica das funções de primeria classe.

Não sei se era essa a confusão ou não. Se não for, acho que com um exemplo de código ficaria mais fácil para mim.

Abraços
 
Cadastro
23/12/20
Postagens
103
Curtidas
117
Pontuação
100
Cidade
Rio Branco
Olá @Cristian Souza tudo bem?

Camarada vou ter de te pedir se puderes mostrar um exemplo de código que esteja provocando esse erro de type Error, pois não estou conseguido visualizar.


Nesta parte não entendi direito. Quando você altera o uso da palavra "const" por "let" (ou "var") você está alterando a forma como aquela variável está sendo declarada, o que você faz ou não com esse valor é outro assunto. E passar funções como valor e argumentos (de outras funções) não está relacionado com a forma como a variável foi declarada, na verdade NÃO tem relação com a variável mas sim com o VALOR. Uma função poder ser usado como valor e, portanto, ser usada como argumento, é uma característica das funções de primeria classe.

Não sei se era essa a confusão ou não. Se não for, acho que com um exemplo de código ficaria mais fácil para mim.

Abraços
Blz @mourabraz vamos la!

Vou tentar ser mais detalhista possivel pra falar no mesmo nivel que voçe, tendo em vista que conseguir entender o conceito de passar uma função como paramentro para outra atraves da constante criada (subtração).

Pontos que voçe mencionou;

  1. Quando você altera o uso da palavra "const" por "let" (ou "var") você está alterando a forma como aquela variável está sendo declarada, o que você faz ou não com esse valor é outro assunto.
    1. Esse conceito que você mencionou eu entendi sim, pois quando troco let por const eu nao posso assinar essa operação pois o valor da constante pode ser qualquer outro tipo de valor (string, number ou booleanno) pois isso nao posso colocar constantes (constantes é constante)
  2. E passar funções como valor e argumentos (de outras funções) não está relacionado com a forma como a variável foi declarada, na verdade NÃO tem relação com a variável mas sim com o VALOR
    1. Esse conceito que voçe mencionou pelo que entendi na aula podemos passar uma função como paramentro para outra, tanto que quando voçe valor que "NAO TEM RELAÇÃO COM A VARIAVEL E SIM COM O VALOR" pelo que entendi se trocamos a forma que a constantes criada que é o intermedio entre os parametros passado para função original ele altera sim o valor.
Mais assim amigo @mourabraz eu assisti a aula novamente e busquei informações em outras fontes e conseguir entender o conceito central da aula.
 
Top