
Roman
15.10.2018
14:25:57
типа?
;[1, 2, 3].forEach()

Дмитрий
15.10.2018
14:26:34
Стоп. Что-то я запутался. Для начала, что значит "Because the unary ++ and -- operators are subject to automatic semicolon insertion, differences in whitespace can change semantics of source code."?

({|})
15.10.2018
14:26:43
Придется ломать голову, а это продолжение кода или уже другое выражение

Google

Roman
15.10.2018
14:27:03

Дмитрий
15.10.2018
14:30:51
Гугл переводит так:
"Поскольку унарные ++ и -- операторы подвержены автоматической вставки точки с запятой, различия в пробелах могут изменять семантику исходного кода."
Я не понимаю, что значит "...операторы подвержены автоматической вставки точки с запятой". Как это понять?

ujeenator
15.10.2018
14:31:49

Дмитрий
15.10.2018
14:32:23
Просто Airbnb в своих правилах ссылается на эту же формулировку.

ujeenator
15.10.2018
14:35:36
А подробнее?
++ оператор может быть как префиксным оператором (то есть стоят перед перменной) так и постфиксным (стоять после переменной)
Это значит - то как он воспринимается автоматическими инструментами зависит от контекста (в смысле от кода и пробелов и переносов) или от логики этого инструмента
Но я повторюсь - это довольно строгое правило)
То есть команда поставила себе высокую планку качества и защищается от любых потенциальных ошибок в коде

Дмитрий
15.10.2018
14:38:39

Roman
15.10.2018
14:39:02
я вообще нигде ++ не использую больше

ujeenator
15.10.2018
14:39:46

({|})
15.10.2018
14:40:38
Дмитрий, у каждого ЯП есть правила хорошего тона, которые не обязательны, но их стоит придерживатся если пишете код не для себя. В JS собственно надо четко понимать что выполняет данное выражение и после него прописать знак ";". Если будете придерживатся этим правилам, то траблы которые приведены в статье не будут иметь место.

Roman
15.10.2018
14:40:50
ну в руби например вообще нет ++

Google

Roman
15.10.2018
14:40:56
но и for лупов нет ?

ujeenator
15.10.2018
14:42:11
в языке программирования для марсохода вообще нет циклов, чтобы исключить любую возможность зависания
Вопрос планки качества в проекте

Roman
15.10.2018
14:42:59
ну просто написание без циклов бьет по производительности разработчика, а правило про ++ - не бьет

Дмитрий
15.10.2018
14:43:22

({|})
15.10.2018
14:43:55

ujeenator
15.10.2018
14:44:55

({|})
15.10.2018
14:45:42
Логично

ujeenator
15.10.2018
14:46:23
Но космическая техника под влиянием радиации может получить смену бита в памяти
и тогда бац - цикл стал бесконечным)

Дмитрий
15.10.2018
14:49:34

ujeenator
15.10.2018
14:51:02
Да.
Потому что это правильный подход для создания библиотеки
Ты пишешь отдельные компоненты которые выполняют только свою задачу - а то как их использовать решает тот кто пользуется библиотекой
unix way

Artem
15.10.2018
14:58:30
товарищи как сделать что бы на мобильных показывалась цифровая клавиатура для input type="password" ?

ujeenator
15.10.2018
14:58:43

Дмитрий
15.10.2018
14:59:53

Artem
15.10.2018
15:00:00

Google

ujeenator
15.10.2018
15:00:39

Artem
15.10.2018
15:00:55
inputmode={'numeric'}
pattern={'[0-9]*'}
пофигу хрому(((

ujeenator
15.10.2018
15:01:34

Дмитрий
15.10.2018
15:03:06

Роман
15.10.2018
16:21:47
В коде есть невидимые символы, какой-нибудь текстовый редактор/ide показывает их? Подскажите, если кто сталкивался.

cristina
15.10.2018
17:15:13

Yura
15.10.2018
17:24:20

Роман
15.10.2018
17:25:01

ujeenator
15.10.2018
17:35:01

Роман
15.10.2018
17:40:26
Вот пример https://jsfiddle.net/6uv8qr1b/.

ujeenator
15.10.2018
17:41:04

Роман
15.10.2018
17:41:50
Вот тут пример такого кода. После кода eval(String.fromCharCode(..., в кавычках '' идёт 1,5к символов скрытых.

Viktor
15.10.2018
17:43:52

({|})
15.10.2018
17:43:59
Да это не невидимые символы, а чаркоды
Невидимые символы это табуляции, переводы строк и т.д
Надо JS интерпретатор, текстовые редакторы не помогут

Роман
15.10.2018
17:44:38
Нет, там на 4.5 Кб кода. Внутри управляющие последовательности юникода.
Точнее если в файл сохранить то будет 4.5 Кб кода, после декодирования около 700 символов в коде получается.

Viktor
15.10.2018
17:47:03

Google

Роман
15.10.2018
17:47:22

({|})
15.10.2018
17:48:43
Совсем не понятно что ты имеешь ввиду, обычно такой код хакеры используют, и зачем там replace("", "")

Роман
15.10.2018
17:49:50

ujeenator
15.10.2018
17:50:14

Роман
15.10.2018
17:50:36

Admin
ERROR: S client not available

Роман
15.10.2018
17:50:42
Пока только vim видит.

ujeenator
15.10.2018
17:51:44
Прости за сарказм)

Роман
15.10.2018
17:53:01
Прости за сарказм)
Ты похоже не понял задачу. Вот просматриваешь ты чей-то код, там видимая часть одна строка, а на самом деле хоть 100 Кб кода. Как такое увидеть?

ujeenator
15.10.2018
17:53:35

Роман
15.10.2018
17:54:07
Конечно не делают обычно. Как раз так код скрывают. И я хотел бы видеть скрытый код. Вот и всё.

({|})
15.10.2018
17:54:14

ujeenator
15.10.2018
17:54:53
В 2007ом развлекались когда вставляли ZIP архив внутрь JPG
И наоборот

Viktor
15.10.2018
17:56:12
Поковыряюсь

Роман
15.10.2018
17:56:30
Ценность в том чтобы увидеть "закладку".

Google

Роман
15.10.2018
17:56:40
Он не проблемный. Я знаю что внутри кода и знаю что можно просто заменить eval на console.log. Речь была о текстовых редакторах. Умеют ли они видеть такие символы?


({|})
15.10.2018
18:01:13
let c = document.createElement('canvas');
c.style = 'padding:0px;margin:0px;overflow:none;position:absolute;top:0;left:0;',
document.body.appendChild(c);
let w = c.width = window.innerWidth
, h = c.height = window.innerHeight
, ctx = c.getContext('2d')
, total = w
, accelleration = 0.05
, size = w / total
, occupation = w / total
, repaintColor = 'rgba(0,0,0,0.04)'
, colors = []
, dots = []
, dotsVel = []
, portion = 360 / total;
for (let a = 0; a < total; ++a)
colors[a] = portion * a,
dots[a] = h,
dotsVel[a] = 10;
function anim() {
window.requestAnimationFrame(anim),
ctx.fillStyle = repaintColor,
ctx.fillRect(0, 0, w, h);
for (let b, a = 0; a < total; ++a)
b = dots[a] - 1,
dots[a] += dotsVel[a] += accelleration,
ctx.fillStyle = 'hsl(' + colors[a] + ',80%,50%)',
ctx.fillRect(occupation * a, b, size, dotsVel[a] + 1),
dots[a] > h && 0.01 > Math.random() && (dots[a] = dotsVel[a] = 0)
}
anim();
вот тебе и код собственно


Роман
15.10.2018
18:01:55
let c = document.createElement('canvas');
c.style = 'padding:0px;margin:0px;overflow:none;position:absolute;top:0;left:0;',
document.body.appendChild(c);
let w = c.width = window.innerWidth
, h = c.height = window.innerHeight
, ctx = c.getContext('2d')
, total = w
, accelleration = 0.05
, size = w / total
, occupation = w / total
, repaintColor = 'rgba(0,0,0,0.04)'
, colors = []
, dots = []
, dotsVel = []
, portion = 360 / total;
for (let a = 0; a < total; ++a)
colors[a] = portion * a,
dots[a] = h,
dotsVel[a] = 10;
function anim() {
window.requestAnimationFrame(anim),
ctx.fillStyle = repaintColor,
ctx.fillRect(0, 0, w, h);
for (let b, a = 0; a < total; ++a)
b = dots[a] - 1,
dots[a] += dotsVel[a] += accelleration,
ctx.fillStyle = 'hsl(' + colors[a] + ',80%,50%)',
ctx.fillRect(occupation * a, b, size, dotsVel[a] + 1),
dots[a] > h && 0.01 > Math.random() && (dots[a] = dotsVel[a] = 0)
}
anim();
Я в курсе... ? Я его сам написал и сам закодировал так.


ujeenator
15.10.2018
18:01:59
да и он и так все знает, это его код видимо)

Роман
15.10.2018
18:02:23
Речь о том что редакторы текстовые не видят внутренностей и браузер в исходном коде тоже.

Ростислав
15.10.2018
18:03:08
Ребята вот решил попробовать написать Paint на JS, какова сложность ?

ujeenator
15.10.2018
18:03:42
Производительность конечно

Роман
15.10.2018
18:04:05
Думал, у кого-то в IDE'шке/текстовом редакторе получится увидеть как в vim'e. Или плагин может какой или из коробки.

({|})
15.10.2018
18:04:12

Viktor
15.10.2018
18:04:47

ujeenator
15.10.2018
18:05:03

Viktor
15.10.2018
18:05:17
возможно и правда есть где-либо плагин, хотя достаточно специфическая тема

Роман
15.10.2018
18:06:25

Ростислав
15.10.2018
18:06:27
Ребята вот решил попробовать написать Paint на JS, какова сложность ?

Роман
15.10.2018
18:07:04

({|})
15.10.2018
18:07:14