Jump to content
Fórum Script Brasil
  • 0

Expressão de atribuição


Rafael L
 Share

Question

8 answers to this question

Recommended Posts

  • 0

É um jeito de escrever o if, muito usado no PHP...

(expressão) ? (1):(2);

=

if (expressão) {
    (1);
} else {
    (2);
}
Agora value_x = !value_x Significa, se existe algum valor para value_x, essa equação é verdadeira, do contrário é falso, mas não verifica a existencia da variavel. Se a variavel não for declarada, vai dar erro na sua página. EX:
// vai voltar 'isso'

var value_x;
var variable = (value_x = !value_x) ? 'isso' : 'aquilo';

// vai voltar aquilo.

var value_x = "teste";
var variable = (value_x = !value_x) ? 'isso' : 'aquilo';

// vai dar "ERRO" (vai parar de rodar seu javascript).

var variable = (value_x = !value_x) ? 'isso' : 'aquilo';

Edited by Arash
Link to comment
Share on other sites

  • 0

Entendi. Muito obrigado. A minha dúvida, quanto ao operador ternário, era na sua forma de declarar o que está sendo avaliado. Demorei um pouco para entender porque não tem if, ou seja, não é qualificado, e segundo (value_x = !value_x) é o mesmo que (value_x != value_x), que é o mesmo que if (value_x != value_x). Eu não sabia que dava para avaliar assim, colocando o operador "not" após o operador "=", junto a variável.

Link to comment
Share on other sites

  • 0

Haha, ai que está, na verdade não é certo pensar desse jeito.

Quando voce coloca "!value_x ", significa: " O valor de !value_x, não existe ou, nulo, vazio." Nesse caso ele foi declarado, mas não tem valor valido.

Quando voce faz " != " voce esta dizendo: "Não é igual a", e isso sempre será falso, pois "value_x" é igual a "value_x", existindo ou não.

Link to comment
Share on other sites

  • 0

Ah ta, ai me desculpe, foi um erro meu, nem tinha visto.

Mas quando eu fui testar por algum motivo, não sei o qual, os resultados não voltaram como o esperado quando usei "==" ou "===".

Talvez seja um bug, ou algo assim, e não sei se todos os navegadores vão ler o bug da mesma forma.

Acho que ele leu algo do tipo:

value_x = value_x = (!value_x)?"isso":"aquilo";
Mas mesmo assim, se eu fosse voce, eu usava:
value_x = (!value_x)?("isso"):("aquilo");

Acho que não vai dar nenhum problema, basta declarar value_x antes, como nos exemplos anteriores.

Edited by Arash
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...