Skip to content

Instantly share code, notes, and snippets.

View steveast's full-sized avatar
🙉
I am looking for a job!

Steve steveast

🙉
I am looking for a job!
View GitHub Profile
@steveast
steveast / binance-profit-calculator
Created November 24, 2025 09:19
Parses numeric values from Buy and Sell elements in the DOM, handling spaces, commas, dots, and negatives, then sums each group and the combined total, returning detailed parsed data for further use.
(() => {
// Надёжный парсер чисел из текста
function parseNumber(text) {
if (!text && text !== 0) return NaN;
let s = String(text).replace(/\u00A0/g, ' ').trim(); // NBSP -> space
// Удалим буквы и символы валют, оставим цифры, точку, запятую, минус, скобки и пробелы
s = s.replace(/[^\d\-,.\s()]/g, '');
// Скобки считаем признаком отрицательного числа: "(1 234,56)" -> -1234.56
const negative = /\(.*\)/.test(s);
s = s.replace(/[()]/g, '');
Очередь синхронного кода (callstack)
Очередь микрозадач (Promise)
Отдельная очередь браузера для отрисовки содержимого (requestAnimationFrame)
Очередь макрозадач (setTimeout() и setInterval() или AJAX-запросы)
requestAnimationFrame(() => console.log('1 animation frame'));
setTimeout(() => console.log('2 timeout'), 0);
Promise.resolve().then(() => console.log('3 promise'));
console.log('4 sync');
@steveast
steveast / Собеседование: промис 2
Last active December 27, 2018 12:22
Собеседование: промис 2
const url = 'http://lol';
function apiGet(url, attempts = 5) {
return new Promise(function core(resolve, reject) {
fetch(url)
.then((res) => {
resolve(res)
})
.catch(() => {
if (attempts) {
@steveast
steveast / Собеседование: промис 1
Last active December 26, 2018 08:43
Собеседование: промис 1
new Promise((resolve, reject) => {
throw new Error('err');
})
.then(() => {
console.log('then');
})
.catch(() => {
console.log('catch');
})
.catch(() => {
@steveast
steveast / Собеседование: use strict
Last active December 26, 2018 08:44
Собеседование: use strict
'use strict'
x = 5; // error! next examples with let x
console.log(++x); // 6
console.log(x++); // 6
function foo() {
console.log(x); // undefined, because there is x below
x += 5;
@steveast
steveast / Собеседование: Отфильтровать объекты от повторяющихся значении.
Last active September 6, 2024 02:29
Собеседование: Отфильтровать объекты от повторяющихся значении.
const array1 = [{
"id": 1,
"name": "apple",
}, {
"id": 2,
"name": "orange"
}];
const array2 = [{
"id": 1,
@steveast
steveast / Собеседование: расшифровка.js
Last active September 6, 2024 02:32
Расшифруйте эту строку. Строка содержит пробел и буквы латинского алфавита.
// Расшифруйте эту строку. Строка содержит пробел и буквы латинского алфавита.
let input = '711141019711632119111114107'; // Great work
let result = '';
function findFirstChar(n) {
let char = String.fromCharCode(n);
if (/[a-z|A-Z ']/.test(char))
return char;
else