Forwarded from Teste Canal (Bruno Bertolini)
Galera, vou começar a postar alguns testes de conhecimento como esse aí no insta, e a explicação do resultado aqui, então responde lá!
Resposta da questão do Instagram:
Isso acontece pois quando usamos o operador unário (++) como sufixo (number++), ele primeiro retorna seu valor (no caso, 0), depois incrementa (transformando em 1). Então o primeiro console.log retorna 0
Quando usamos o operador unário como prefixo (++number), ele faz o contrário, primeiro incrementa, depois retorna, o que faz com que o console.log dessa vez retorne 2.
E o último console.log obviamente não tem alteração, retornando 2 também!
Portanto, a resposta correta era C: 0 2 2
Isso acontece pois quando usamos o operador unário (++) como sufixo (number++), ele primeiro retorna seu valor (no caso, 0), depois incrementa (transformando em 1). Então o primeiro console.log retorna 0
Quando usamos o operador unário como prefixo (++number), ele faz o contrário, primeiro incrementa, depois retorna, o que faz com que o console.log dessa vez retorne 2.
E o último console.log obviamente não tem alteração, retornando 2 também!
Portanto, a resposta correta era C: 0 2 2
https://instagram.com/stories/codar.me/2293642493780219780?utm_source=ig_story_item_share&igshid=10m4i8ipm63cx
Já responderam a questão no insta? Então lá vai a explicação da resposta!
Já responderam a questão no insta? Então lá vai a explicação da resposta!
Essa é uma questão de verdadeiro ou falso!
Mas não o buleano (true / false ), e sim o truthy / falsy!
Pra quem não sabe, quando o javascript precisa fazer uma operação onde são necessários valores TRUE / FALSE, ele verifica se o valor passado pra operação, convertido pra buleano é TRUE ou FALSE, e a gente chama isso de TRUTHY / FALSY
E nesse caso, valores que sempre são falsy:
- false
- 0
- "" ou '' (string vazia)
- null
- undefined
- NaN
Todo o resto é truthy, incluindo:
- ’0’ (zero como string)
- ‘false’ (false, como string)
- [] (array, mesmo que vazio)
- {} (objeto, mesmo vazio)
- funciton () {} (funções, mesmo que vazias)
O operador || retorna o primeiro operador truthy, portanto, as nossas alternativas:
const x = [] || 0 || true
— O primeiro item é um array vazio, o que já vimos que é um truthy, então x = []
const y = false || {} || null
— Também já sabemos objeto vazio {} é truthy, então y = {}
const z = null || false || ''
— Aqui os dois primeiros retornam falsy, porém o último, uma string vazia, sabemos que é truthy, assim z = ''
Pronto, temos a resposta:
B: [] {} ''
Mas não o buleano (true / false ), e sim o truthy / falsy!
Pra quem não sabe, quando o javascript precisa fazer uma operação onde são necessários valores TRUE / FALSE, ele verifica se o valor passado pra operação, convertido pra buleano é TRUE ou FALSE, e a gente chama isso de TRUTHY / FALSY
E nesse caso, valores que sempre são falsy:
- false
- 0
- "" ou '' (string vazia)
- null
- undefined
- NaN
Todo o resto é truthy, incluindo:
- ’0’ (zero como string)
- ‘false’ (false, como string)
- [] (array, mesmo que vazio)
- {} (objeto, mesmo vazio)
- funciton () {} (funções, mesmo que vazias)
O operador || retorna o primeiro operador truthy, portanto, as nossas alternativas:
const x = [] || 0 || true
— O primeiro item é um array vazio, o que já vimos que é um truthy, então x = []
const y = false || {} || null
— Também já sabemos objeto vazio {} é truthy, então y = {}
const z = null || false || ''
— Aqui os dois primeiros retornam falsy, porém o último, uma string vazia, sabemos que é truthy, assim z = ''
Pronto, temos a resposta:
B: [] {} ''
Quer estudar um pouco de layouts responsivos? Saca só esse codepen! Dá pra aprender muita coisa ali https://codepen.io/TurkAysenur/pen/RwWKYMO
Codar.me
Photo
na verdade errei o código da opção 3, o correto seria esse ai!
Galera, além do webinario, vai ter uma super novidade no domingo!!! Se cadastra ai pra não perder!!! https://codar.me/webinario-001