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) === 0
0
и больше получилось тоже ненулевое число, и !!
даст true
-1
получится уникальный 0
, и !!0
вернёт false
.then(onFulfilled, onRejected)
вторая функция «ловит» ошибку и обрабатывает её, поэтому выполнение не прерывается..catch()
в конце цепочки.// ...
, function(reason) {
console.log(reason); // Ошибка! (Тут Скрипт должен прервать дальнейшее выполнение!)
return Promise.reject(reason); // передаём пас с ошибкой дальше по цепочке
})
и всё равно добавьте в конце блок .catch()
...args
arguments
какая из реализаций лучше?
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 sum = arr.reduce((acc, n) => acc + n.number, 0);
const newArr = arr.map(n => ({ ...n, percent: n.number / sum * 100 }));
data-flat
записан номер квартиры. data-flat
совпадает с этим номером. Для этого используется селектор [data-flat="42"]
присваивание всем переменным, которые используются в компоненте, их дефолтное значение мне тоже кажется не лучшей идеей