const str = 'matrix(1, 0, 0, 1, 0, -47)'
+str.match(/(-\d+)\)/).pop() // -47
Плюс перед выражением это унарный оператор, который переводит аргумент в тип число. // вместо
$( /* что-то там */ ).each()
// добавить slice:
$( /* что-то там */ ).slice(0, 2).each()
div
свойства opacity
. Просто добавьте немного стиля ; )document.querySelector('code.javascript').style.opacity = 0.5;
и ваш код станет наполовину прозрачнымconst elPassword = document.querySelector('.password');
document.querySelector('img')
.addEventListener("click", () => {
elPassword.setAttribute(
"type",
elPassword.getAttribute("type") === "password" ? "text" : "password")
});
По клику всегда меняем атрибут. Вопрос лишь в том, на какое значение. // сократить актёров
"актёры".replace(/ы$/, "") // актёр
// но сохранить животных
"Животные".replace(/ы$/, "") // Животные
indexOf()
, который возвращает -1
если не найдено, или индекс от 0
и больше.-1
или иное значение. Можно просто сравнивать if (a.indexOf(b) > -1) { /* найдено! */ }
но иногда хочется короче.~
хорош тем, что выделяет -1
: только -1
с этим оператором даст 0
. Прочие числа дадут какое-то ненулевое значение.~(-1) === 0
0
и больше получилось тоже ненулевое число, и !!
даст true
-1
получится уникальный 0
, и !!0
вернёт false
[ 06:00, 18:00 ]
От них две середины — и полдень и полночь – одинаково удалены: куда рванём?(x, y)
координат. Считать среднее из этих точек, и считать угол, указывающий на «среднюю» точку:name
и age
указывают на массивы, а они, как и любые объекты в JavaScript, передаются «по ссылке», т.е. передаётся указатель на место в памяти, где лежит массив. Прочитайте по ссылке «по ссылке» : ) — там действительно подробно и с картинками описывают проблему.this.save
оказываются те же самые массивы, что и в obj
. Меняете там, меняется тут, и наоборот. Разорвать порочную связь можно, например, грубоватым и не самым эффективным способом:const obj_copy = JSON.parse(JSON.stringify( obj ));
// создали действительно независимую «глубокую копию» объекта
Для нехитрого объекта без функций-методов и всяких Map/Set'ов это годится. const TIMEOUT = "TIMEOUT";
for (let i=0; i < 300; i++) {
await Promise.any([
Order(i), // то самое стороннее апи
new Promise((resolve) => setTimeout(() => resolve(TIMEOUT), 3 * 6e4))
])
.then((result) => {
if (result === TIMEOUT) {
console.log(TIMEOUT);
} else {
console.log("Order fulfilled");
}
})
}