var
больше не стоит использовать, вообще. Только let
и const
.var a = 5;
— тут происходит 2 вещи: function a()
уплывает наверх выше назначения a = 5
, которое оказывается после всех деклараций. Можно даже так:function a() {
return 10;
}
a = 5;
Это, по сути, и происходит в 1-м примере. localStorage
это возможность браузеров, а не особенность языка.const dict = [];
arrObj.forEach((el, i) => {
if (! dict.includes(el.key)) dict.push(el.key);
el.sorter = dict.indexOf(el.key);
});
arrObj.sort((a, b) => a.sorter < b.sorter ? -1 : (a.sorter > b.sorter ? 1 : a.id - b.id));
arrObj.forEach((el) => delete el.sorter);
console.log(arrObj);
canvas
. Картинки должны быть с того же домена, что и страница.function getPixel(url, x, y) {
var img = new Image();
img.src = url;
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
context.drawImage(img, 0, 0);
return context.getImageData(x, y, 1, 1).data;
}
PIXI
есть свойство loader
. Его можно получить так: PIXI.loader
loader
, в свою очередь, есть метод add()
. Вызывается как Loader.add()
Это, если бы мы результат в промежуточную переменную записали: var Loader = PIXI.loader; Loader.add()
load()
.PIXI.loader.add("images/anyImage.png").load(setup)
Для читаемости разнесены по строкам. removeEventListener('click', mainFunc);
mainFunc
и прочие вызывать только после отработки асинхронного кода.addEventListener()
на этой кнопке, чтобы все последующие обработчики складывать в массив. И вызывать их из массива только после своего и mainFunc
.http {
# ...
map $http_x_user_file $kinofile {
default 'error.txt';
kino1 movie1.mp4;
kino2 old/TheMatrix.avi;
}
server {
# ...
location /film {
try_files /movies/$kinofile =404;
map