x == y, x === y и Object.is(x, y).const x = {foo: "bar"};
const y = x; indexOf(), который возвращает -1 если не найдено, или индекс от 0 и больше.-1 или иное значение. Можно просто сравнивать if (a.indexOf(b) > -1) { /* найдено! */ } но иногда хочется короче.~ хорош тем, что выделяет -1: только -1 с этим оператором даст 0. Прочие числа дадут какое-то ненулевое значение.~(-1) === 00 и больше получилось тоже ненулевое число, и !! даст true-1 получится уникальный 0, и !!0 вернёт false
Целая глава посвящена вопросу!.then(onFulfilled, onRejected)вторая функция «ловит» ошибку и обрабатывает её, поэтому выполнение не прерывается..catch() в конце цепочки.// ...
, function(reason) {
console.log(reason); // Ошибка! (Тут Скрипт должен прервать дальнейшее выполнение!)
return Promise.reject(reason); // передаём пас с ошибкой дальше по цепочке
})и всё равно добавьте в конце блок .catch() ...argsargumentsкакая из реализаций лучше?
const getTruthyKeys = obj =>
Object
.entries(obj)
.filter(n => n[1])
.map(n => n[0]);for([key, value] of Object.entries(item)) {const obj = new Proxy({
a: 0,
b: 1,
c: 2,
}, {
get: () => Math.round(Math.random()),
});console.log(Array.from({ length: 10 }, () => getTruthyKeys(obj)));
const valueKey = 'number';
const percentKey = 'percent';const sum = arr.reduce((acc, n) => acc + n[valueKey], 0);
const getPercent = n => n[valueKey] / sum * 100;const newArr = arr.map(n => ({ ...n, [percentKey]: getPercent(n) }));
// или
arr.forEach(n => n[percentKey] = getPercent(n)); data-flat записан номер квартиры. data-flat совпадает с этим номером. Для этого используется селектор [data-flat="42"]
присваивание всем переменным, которые используются в компоненте, их дефолтное значение мне тоже кажется не лучшей идеей