Em 2011 eu fiz essa postagem:
Baseada nas coisas que eu mais estava utilizando naquela época!
5 anos depois eu fiz essa:
Pra facilitar pra mim e pra quem quisesse o famoso: copiar e colar! =)
Hoje, 13 anos depois da primeira, vamos fazer a Parte #3 \o/
const rgbToHex = (r, g, b) => "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)
console.log( rgbToHex(55, 44, 77) ) // #372c4d
Teste a veracidade aqui.
<button onclick="copyToClipboard('Texto do Botão')">Texto do Botão</button>
<script>
const copyToClipboard = (text) => navigator.clipboard.writeText(text);
</script>
Após clicar no botão, quando pressionar
Ctrl + v
em qualquer outro lugar possível, aparecerá: ‘Texto do Botão
’. Se enviar direto(sem botão para clicar) pro navegador, ele pedirá uma confirmação:
const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());
// Mês / Dia / Ano
console.log( isDateValid("06/06/2024") ) // true
console.log( isDateValid("13/31/2024") ) // false
A segunda é
false
pois, lógico, não existe mês 13 😃
const dayOfYear = (date) =>
Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
const dayQtd = dayOfYear(new Date());
console.info(dayQtd) // 158
De acordo com a data de publicação desse artigo! Se você pesquisar esse tipo de frase no Google, por exemplo, irá confirmar:
Javascript não possui uma função para esse resultado específico. Apesar de ser fácil, às vezes pode tomar um tempinho até acertar =)
const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)
let frase = "amanhã será um lindo dia"
console.log( capitalize(frase) )
// Amanhã será um lindo dia
const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)
let qtdDays = dayDif(new Date("2024-05-31"), new Date("2024-06-06"))
console.log(qtdDays) // 6
Pode ser útil para backgrounds(body
nesse caso) com cores diversificadas!
const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`;
let color = randomHex()
document.body.style.background = color;
// console.log(randomHex());
const removeDuplicates = (arr) => [...new Set(arr)];
console.log(removeDuplicates([1, 2, 3, 3, 4, 4, 5, 5, 6]));
// 1, 2, 3, 4, 5, 6
<body>
<p>=)</p>
<div id="main" style="height:2000px;"></div>
<a onclick="goToTop()">Ir pro topo!</a>
<script>
const goToTop = () => window.scrollTo(0, 0);
</script>
</body>
const average = (...args) => args.reduce((a, b) => a + b) / args.length;
let media = average(1, 2, 3, 4);
console.log(media) // 2.5
const reverse = str => str.split('').reverse().join('')
console.log( reverse('Terminal Root') )
// tooR lanimreT
<div id="main">
<p>Isso também pode ser selecionado</p>
<p>Ou partes de qualquer desses trechos</p>
<button onclick="showSelected()">Mostrar o que você selecionou</button>
</div>
<script>
const getSelectedText = () => window.getSelection().toString()
const showSelected = () => console.log(getSelectedText())
</script>
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
console.log(shuffleArray([1, 2, 3, 4]));
Ás vezes o navegador pode não está em Dark Mode, mas se o dispositivo estiver, ele detecta
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
console.log(isDarkMode)
No meu caso que uso:
true
Espero daqui a alguns anos fazer a parte 4![brincadeira]
😃.