for (const entry of data) {
const row = table.insertRow(-1);
row.insertCell(-1).textContent = entry.alpha2Code;
row.insertCell(-1).innerHTML = `<img src="${entry.flag}" alt="" />`;
row.insertCell(-1).textContent = entry.name;
row.insertCell(-1).textContent = entry.capital ?? '-';
row.insertCell(-1).textContent = entry.population;
}
const count = 2;
export default await Promise.all(
Array.from({ length: count }, async (_, index) => (await import(`./data${index + 1}.js`)).default)
);
const getSubstringAfter = (string, char, iterations) => {
let pos = -1;
for (let i = 0; i < iterations; i++) {
pos = string.indexOf(char, pos + 1);
}
return string.slice(pos + 1);
};
getSubstringAfter(str, '-', 2);
str.split('-').slice(2).join('-');
str.replace(/([^-]+\-){2}/, '');
str.match(/(?:[^-]+\-){2}(.*)/)?.[1]
const createPersistCounter = (name) => {
let value = Number(localStorage.getItem(name) || '');
if (Number.isNaN(value)) {
value = 0;
}
const action = (fn) => () => {
fn();
localStorage.setItem(name, value);
};
const inc = action(() => (value += 1));
const dec = action(() => (value -= 1));
const reset = action(() => (value = 0));
return {
get value() {
return value;
},
inc,
dec,
reset
};
};
const counter = createPersistCounter('clicks');
counter.inc(); // localStorage['clicks'] == 1
counter.inc(); // localStorage['clicks'] == 2
- modal.classList.add('modal_show')
const modalContent = modal.querySelector('.modal__content')
if ( (modal.classList.contains('modal_show')) && (e.target != modalContent) ) {
modal.classList.remove('modal_show')
+ } else {
+ modal.classList.add('modal_show')
+ }
let p = new Promise((res, rej) => {
// Ждем 7сек; вызываем функцию res с аргументом 2
setTimeout(res, 7000, 2);
})
// Возвращаем новый промис; ждем 5сек; вызываем функцию res с аргументом 6 (2 + 4)
.then((data) => new Promise((res) => setTimeout(res, 5000, data + 4)))
.then((data) => console.log('data', data)); // 'data' 6
setTimeout(() => console.log(p), 10000); // Просто выведем промис
array.map(([author, text]) => ({ author, text }))
array.reduce((acc, [author, text]) => [...acc, { author, text }], [])
array.reduce((acc, [author, text]) => (acc.push({ author, text }), acc), [])
array.reduce((acc, [author, text]) => {
acc.push({ author, text });
return acc;
}, [])
array.reduce((acc, pair) => {
acc.push({
author: pair[0],
text: pair[1]
});
return acc;
}, [])
for
если Вам это необходимо. const formatter = new Intl.DateTimeFormat('en-US', {
timeZone: 'America/New_York',
weekday: 'long',
hour12: false,
hour: 'numeric',
minute: 'numeric'
});
const parts = formatter.formatToParts(new Date()).reduce((acc, entry) => ({
...acc,
[entry.type]: entry.value
}), {});
console.log(parts); // {weekday: 'Thursday', literal: ':', hour: '12', minute: '19'}
package.json
(npm init -y
). В приведённом Вами коде используются ES6-импорты (ESM-импорты), которые сразу не будут работать в Node.js, т.к. в нём используются CommonJS-импорты. Для решения данной проблемы у Вас есть два пути:"type": "module"
в package.json
:{
...
"type": "module",
...
}
- import * as crypto from 'crypto';
+ const crypto = require('crypto');
$ node .
cVoADkhcldK+mYC3Id5vhkxOr4NwVspTcgF56RiRG0CzcnOcBwcELKi1YnBNySmZugpjJNHuCU7ePjwVadqfAw==
Math.random().toString(36).slice(2)
Date.now()
crypto.randomUUID()
(docs)const digitValues = new Uint8Array(16);
crypto.getRandomValues(digitValues);
const randomHash = hexValues = [...digitValues]
.map(value => value.toString(16).padStart(2, '0'))
.join('');
export const sum = (a, b) => a + b;
export const diff = (a, b) => a - b;
export const multiply = (a, b) => a * b;
export const divide = (a, b) => a / b;
export * as Mod1 from './mod1.js';
export * as Mod2 from './mod2.js';
import * as M from './module.js';
console.log(M.Mod1.sum(1, 2)); // 3
console.log(M.Mod2.multiply(5, 3)); // 15
/**
* @param {MouseEvent} event
*/
function onButtonDown(event) {
alert(event);
}
addEventListener
её контекст выполнения потерян, вот типизация и отсутствует. const unwrap = (element) => {
element.replaceWith(...element.children);
};
unwrap(document.querySelector('.div'));
<button>привет</button>
const button = document.querySelector('click', (event) => {
event.preventDefault();
button.textContent = 'пока';
}, { once: true });