Показать сообщение отдельно
  #17 (permalink)  
Старый 13.01.2019, 20:11
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от laimas
код будет работать с условием... тот кто выставляет код не считает нужным предупредить об этом
🚀 Я пишу ответы в соответствий с последним стандартом языка. На данный момент таковым является девятое издание спецификации ECMAScript2018📜. Это ядро языка, и оно хорошо поддерживается большинством последних версии браузеров, а также в NodeJS.
✨ Среди браузерынх API используются те, которые имеют статус «Рекомендация» или «Кандидат на рекомендацию» (в последнем случае может приводиться ссылка на таблицу поддержки в разных браузерах от caniuse.com 💪 ).

Сообщение от laimas
старое давно умерло
☠ На самом деле нет! 🕱 📜Берётся старая спецификация (которая когда-то была стандартом) + 💭к ней приписываются какие-то новые вещи = 💥новая спецификация! Т. е. вы можете и сейчас писать при помощи синтаксиса ECMAScript3 — это нормально! 😻

Сообщение от laimas
заказчики не редкость хотят поддержки браузеров инвалидов
Нормальные здоровые люди используют Chrome🍭 или Safari🍭 или Firefox🍭 или в крайнем случае Edge.
Ну а желанная поддержка IE6💩 — это определённо нездоровая радость, что у тебя работает в IE6💩 прямо как в 🍭, т. е. так, как надо, а у других нет!
Я же считаю, что для супер старых браузеров возможно (ведь в старом браузере можно вывести просто какую-то общую информацию, или автоматический переход на старую версию веб-приложения, когда оно ещё работало (если есть)) нужна отдельная версия (HTML4 + CSS2(когда было всё в одну кучу) + ECMAScript3)), но это означает и то, что заказчик готов платить вдвое-втрое больше и получить дупликат продукта, который хуже!📈

Да и вообще зачем вам поддержка в 💩, если все используют 🍭? Тем более это бесплатное программное обеспечение! Впридачу 🍭 само обновляется! А 💩 как было 💩, так и осталось 💩!

Сообщение от laimas
Оно конечно проще, круто/красиво, но для большей части авторов постов вообще не понятно.
Раз проще, то и проще понимать! По-моему соорудить нагромождение коллбеков и понять как оно работает намного сложнее, чем изучить import и async.

Сообщение от laimas
с легкостью оперируя нововведениями Javascript
Я такого не замечал! Все используют в основном то, что стандартизировано и, соответственно, без всяких упрёков может использоваться!

Но могу показать, что будет возможно стандартизировано в ES2019 или ES2020.

ОСТОРОЖНО!!! Далее идет нестандартный код (возможно вам надо что-то включить в about:///flags или не надо)

Конструктор BigInt и литералы целого числа. Пример вычисляет 50 000-ое число Фиббонначи.
<style>body {	word-break: break-all; }</style><script>
const n = 50000n;
document.write(`F(${n}) = ${fib(n)}`);

function fib(n) {
    if(n >= 0n)
        return fibHelper(0n, 1n, 0n, 1n, n);
    else
        return (-1n) ** (1n - n) * fib(-n);

    function fibHelper(x, y, x1, y1, n) {
        if(n == 0n)
            return x;

        if(n % 2n == 0n)
            return fibHelper(
                x, y,
                x1 ** 2n + y1 ** 2n, y1 ** 2n + 2n * x1 * y1,
                n / 2n
            );

            return fibHelper(
                y * y1 + x * x1, y * x1 + (x + y) * y1,
                x1, y1,
                n - 1n
            );
    }
}
</script>
(Алгоритм быстрого вычисления переведён из Haskell)

поля в классе
class Test {
	x = 5;
	[Symbol.for("test")] = /a/gi;
	#y = 67;
	static str = s => `"${s}"`;
}

console.log(new Test()); // попробуй найти, где y


метод flatMap можно использовать, например, чтобы одновременно применить filter и map. В примере из массива чисел выбираются нечётные, а затем умножаются на два.
console.log([2, 3, 5, 6, 7, 11, 12, 15].flatMap(x => x % 2 !== 0 ? [2 * x] : []));


разделитель в числовом литерале
alert(100_000_001);
alert(123_456_789_101_112n);


"Сканирование" строки. Выводит у каждого числа последнюю цифру.
for(const [number, lastDigit] of "12 hello 2019 abc 666 1".matchAll(/\d*(\d)/g)) {
	console.log(lastDigit);
}
Ответить с цитированием