Códigos em JavaScript
Estude trechos de código e sintaxe em JavaScript para entender o comportamento de operadores e funções. Ideal para desenvolvedores.
Cartões · 50
- typeof null
- Retorna 'object'. É um bug histórico conhecido na especificação do JavaScript mantido por compatibilidade.
- typeof NaN
- Retorna 'number'. NaN significa Not-a-Number, mas tecnicamente pertence ao tipo numérico.
- 0.1 + 0.2 === 0.3
- Retorna false devido a imprecisões na representação de números de ponto flutuante de 64 bits (IEEE 754).
- [] + []
- Retorna uma string vazia ''. Ambos os arrays são convertidos para strings e concatenados.
- [] + {}
- Retorna '[object Object]'. O array vira string vazia e o objeto vira string via coerção implícita.
- true + false
- Retorna 1. O operador de adição converte booleanos em números (true = 1, false = 0).
- '5' - 3
- Retorna 2. O operador de subtração converte a string '5' em número antes de calcular.
- '5' + 3
- Retorna '53'. O operador de adição realiza concatenação de strings quando um operando é texto.
- Boolean('')
- Retorna false. Strings vazias são tratadas como valores falsy em JavaScript.
- Boolean('0')
- Retorna true. Qualquer string não-vazia, incluindo '0' e 'false', é considerada truthy.
- null == undefined
- Retorna true. A igualdade frouxa considera null e undefined equivalentes entre si.
- null === undefined
- Retorna false. A igualdade estrita verifica tipos diferentes (object vs undefined).
- [1, 2, 3].map(x => x * 2)
- Retorna [2, 4, 6]. Cria um novo array transformando cada elemento da lista original.
- [1, 2, 3, 4].filter(x => x % 2 === 0)
- Retorna [2, 4]. Filtra a lista mantendo apenas os elementos que passam no teste lógico.
- [1, 2, 3, 4].reduce((acc, curr) => acc + curr, 0)
- Retorna 10. Acumula todos os valores do array somando-os a partir do valor inicial 0.
- [3, 1, 10, 2].sort()
- Retorna [1, 10, 2, 3]. O método sort padrão converte elementos para strings antes de ordenar.
- [3, 1, 10, 2].sort((a, b) => a - b)
- Retorna [1, 2, 3, 10]. Ordena os números em ordem numérica crescente via função comparadora.
- Array.isArray([])
- Retorna true. É a forma segura e recomendada para verificar se uma variável é um array.
- [...'hello']
- Retorna ['h', 'e', 'l', 'l', 'o']. O operador spread divide a string em caracteres individuais.
- new Set([1, 2, 2, 3])
- Cria um Set contendo {1, 2, 3}. A estrutura Set armazena apenas valores exclusivos.
- const { a, b } = { a: 1, b: 2 }
- Cria as variáveis a valendo 1 e b valendo 2 por meio de desestruturação de objetos.
- const [first, ...rest] = [1, 2, 3, 4]
- Atribui 1 a first e o array restante [2, 3, 4] à constante rest usando rest pattern.
- null ?? 'default'
- Retorna 'default'. O operador nullish coalescing ignora apenas null e undefined.
- '' ?? 'default'
- Retorna ''. Strings vazias não são nulas nem indefinidas, portanto não acionam o fallback.
- '' || 'default'
- Retorna 'default'. O operador OU lógico avalia qualquer valor falsy e adota o fallback.
- user?.address?.city
- Retorna undefined se user ou address for null/undefined, sem lançar erro de leitura.
- Object.keys({ a: 1, b: 2 })
- Retorna ['a', 'b']. Produz um array com as chaves enumeráveis do próprio objeto.
- Object.values({ a: 1, b: 2 })
- Retorna [1, 2]. Produz um array contendo os valores das propriedades do objeto.
- Object.entries({ a: 1, b: 2 })
- Retorna [['a', 1], ['b', 2]]. Gera pares chave-valor no formato de matriz de arrays.
- JSON.stringify({ a: 1, b: undefined })
- Retorna '{"a":1}'. Propriedades com valor undefined são omitidas na conversão para JSON.
- Number('42px')
- Retorna NaN. A função Number tenta converter a string inteira e falha se houver caracteres.
- parseInt('42px', 10)
- Retorna 42. Analisa a string do início até encontrar caracteres não numéricos.
- isNaN('hello')
- Retorna true. Converte 'hello' para NaN antes de checar, retornando verdadeiro.
- Number.isNaN('hello')
- Retorna false. Não faz coerção prévia; checa estritamente se o tipo e valor são NaN.
- Math.max(...[5, 10, 3])
- Retorna 10. O operador spread expande o array em argumentos individuais para a função.
- [1, 2, 3].includes(2)
- Retorna true. Verifica de forma direta se o elemento fornecido existe dentro do array.
- [1, 2, 3].some(x => x > 2)
- Retorna true. Avalia se ao menos um elemento cumpre o predicado da função de teste.
- [1, 2, 3].every(x => x > 0)
- Retorna true. Valida se todos os elementos atendem com sucesso à condição definida.
- [1, [2, [3]]].flat(2)
- Retorna [1, 2, 3]. Achata estruturas de arrays aninhadas até a profundidade especificada.
- 'hello world'.split(' ')
- Retorna ['hello', 'world']. Divide a string em substrings utilizando o espaço como critério.
- ['a', 'b', 'c'].join('-')
- Retorna 'a-b-c'. Junta todos os elementos de um array em uma string com hífen intermediário.
- String(123)
- Retorna '123'. Realiza a conversão explícita de um valor numérico para texto.
- !!'non-empty'
- Retorna true. A dupla negação converte rapidamente qualquer expressão em valor booleano puro.
- 1 === 1 && 2 === 2
- Retorna true. O operador E lógico requer que ambas as condições sejam verdadeiras.
- const fn = (a = 10) => a; fn()
- Retorna 10. Assume o valor pré-definido como padrão ao não receber argumentos na chamada.
- [10, 20, 30].find(x => x > 15)
- Retorna 20. Encontra e devolve o primeiro elemento que satisfizer a condição informada.
- [10, 20, 30].findIndex(x => x === 20)
- Retorna 1. Retorna a posição do índice correspondente ao primeiro elemento localizado.
- typeof (() => {})
- Retorna 'function'. Em JavaScript, funções possuem seu próprio identificador de typeof.
- Object.is(NaN, NaN)
- Retorna true. O método Object.is identifica corretamente NaN como sendo igual a outro NaN.
- Promise.resolve(5).then(x => x * 2)
- Produz uma promessa resolvida com valor 10 de modo assíncrono após o tratamento com .then().