Fingerprint2.get(hash => {
$.ajax({
type: 'post',
url: 'https://api.example.com/log',
dataType: 'json',
data: { hash },
success: res => console.log('OK!', res),
error: console.error,
});
});
Но вообще, переходите на поддерживаемую и обновляемую версию пакета @fingerprintjs/fingerprintjs const MyMap = new Map([['aAa', 'A'], ['bbb', 'B'], ['CcC', 'C']]);
const toRename = [...MyMap.keys()].filter(key => key.toLowerCase() !== key);
// [ "aAa", "CcC" ]
toRename.forEach(key => {
MyMap.set(key.toLowerCase(), MyMap.get(key));
MyMap.delete(key);
});
// MyMap: { bbb → "B", aaa → "A", ccc → "C" }
По-хорошему, надо проверять ещё, что ключ именно строка. А то Map дело такое, там и объект ключом может.$groups = [
'detailed',
'parent' => [
'short',
'parent' => [
'short',
'parent' => [
'short',
],
],
],
];
npm init
Для этого понадобится сначала установить на комп node
и npm
npm install ...
main.js
, где объединить ваш код и этот модульimport { Game } from 'js-chess-engine'; // 1-я строчка в файле main.js
const game = new Game();
// ... ваш код, взаимодействующий с game
ffmpeg \
-i 1.gif \
-i 2.gif \
-filter_complex vstack \
result.gif
Array.from(employees, ({name, age}) => `Имя: ${name}, возраст: ${age}`)
createCounter()
создаёт и возвращает новую функцию. С которой в комплекте идёт свой новый «чемодан» замыкания, в котором лежит своя переменная counter
. откуда беретсяcounter
при втором вызовеconsole.log(z())
createCounter()
класс1 И класс2
— чтобы непременно оба были в наличии у элемента, и тогда только его брать;класс1 ИЛИ класс2
— достаточно любого одного из двух, ну или оба, вообще супер.document.querySelector('.popup__close.popup__area'); // без пробела
document.querySelector('.popup__close, .popup__area'); // через запятую
querySelector()
выбирает первый подходящий найденный элемент. Один.querySelectorAll()
выберет все подходящие. const months = 'января|февраля|марта';
const re = new RegExp(`(\\d{1,2})\\s(${months})\\s(\\d{4})`);
'блаблаблаб ла блаб ла 10 января 2023 блаблабла'.match(re)
// [ "10 января 2023", "10", "января", "2023" ]
Цель: изучить оба фреймворка и уметь с ними работать.
Mon Mar 20 2023 07:42:33 GMT+0300 (Moscow Standard Time)
(new Date(1679287353711))
.toISOString() // "2023-03-20T04:42:33.711Z"
.substring(11, 23) // "04:42:33.711"
;
Омонимы сидели в баре, развалившись, как баре.
\b
— работает только для ASCII, не годится для Unicode кириллицы./дум.?(?=$|\s)/u
– один опциональный символ, и смотреть вперёд, чтобы там был или конец строки или пробельный символ.const m = str => str.match(/дум.?(?=$|\s)/u);
m('ду') // null
m('дум') // ["дум"]
m('дума') // ["дума"]
m('думать') // null
Only functions defined as methods have access to thesuper
keyword.super.prop
looks up the property on the prototype of the object that the method was initialized on.
Свойство [[HomeObject]] определено для методов как классов, так и обычных объектов. Но для объектов методы должны быть объявлены именно как method(), а не "method: function()".
Для нас различий нет, но они есть для JavaScript.