Сообщение от 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);
}