Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 September 07

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Еще раз. Я спрашиваю о том, почему вы объявляете функцию посредством стрелочной.
То есть так:
const bytesToSize = bytes => { ... }

А не так:
function bytesToSize() { ... }

По сути на выходе это практически тот же объект.
Полагаю из-за контекста?
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Еще раз. Я спрашиваю о том, почему вы объявляете функцию посредством стрелочной.
То есть так:
const bytesToSize = bytes => { ... }

А не так:
function bytesToSize() { ... }

По сути на выходе это практически тот же объект.
Полагаю из-за контекста?
Нет, предлагаю вам начать учить js с самого начала, вы не понимаете разницу между базовыми типами и называете тело функции обхектом. Конечно функциональный тип является объектом, но не результат этой функции. Ее результат скалярный тип
источник

YV

Yura Vshchnk in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Это будет нарушение авторских прав
а если так написать?🤔
const TYPES = ['', ' Kb', ' Mb', ' Gb', ' Tb', ' Pb', ' Eb', ' Zb', ' Yb'];

const makeCaption = b => {
 if (b === 0) return '' + b;
 const cheslo = 1000
 const e = Math.floor(Math.log(bytes) / Math.log(cheslo));
 const razmer = b / cheslo ** e;
 const num = Math.round(razmer, 2);
 const type = TYPES[exp];
 return num + type;
};
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Функция делает string -> number
источник

M

Mehannoying in NodeUA - JavaScript and Node.js in Ukraine
Yura Vshchnk
а если так написать?🤔
const TYPES = ['', ' Kb', ' Mb', ' Gb', ' Tb', ' Pb', ' Eb', ' Zb', ' Yb'];

const makeCaption = b => {
 if (b === 0) return '' + b;
 const cheslo = 1000
 const e = Math.floor(Math.log(bytes) / Math.log(cheslo));
 const razmer = b / cheslo ** e;
 const num = Math.round(razmer, 2);
 const type = TYPES[exp];
 return num + type;
};
:D
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Орнул с cheslo
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Yura Vshchnk
а если так написать?🤔
const TYPES = ['', ' Kb', ' Mb', ' Gb', ' Tb', ' Pb', ' Eb', ' Zb', ' Yb'];

const makeCaption = b => {
 if (b === 0) return '' + b;
 const cheslo = 1000
 const e = Math.floor(Math.log(bytes) / Math.log(cheslo));
 const razmer = b / cheslo ** e;
 const num = Math.round(razmer, 2);
 const type = TYPES[exp];
 return num + type;
};
То будет нарушение принципа единственной ответственности
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Нет, предлагаю вам начать учить js с самого начала, вы не понимаете разницу между базовыми типами и называете тело функции обхектом. Конечно функциональный тип является объектом, но не результат этой функции. Ее результат скалярный тип
Сейчас не понял, куда вы меня послали? ))
Я не говорил о теле функции. Я говорил об объявлении функции
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Ладно проехали, это наверное сентябрь...
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Сейчас не понял, куда вы меня послали? ))
Я не говорил о теле функции. Я говорил об объявлении функции
Ни какого объекта тут нет, просто поверьте
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Сейчас не понял, куда вы меня послали? ))
Я не говорил о теле функции. Я говорил об объявлении функции
А какая собсна разница стрелочная это функция или классическая если это не конструктор?
И при чем тут обьект?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
А какая собсна разница стрелочная это функция или классическая если это не конструктор?
И при чем тут обьект?
Это я и пытался от вас понять
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Писать все на стрелках -- абсолютно нормальная практика
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Разница, что обычная функция имеет контекст this и может использоваться в качестве метода или через bind, а стрелочная не может. А объекта там нет.
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Можно еще хоистинг упомянуть кнеш
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
И та и та форма будут давать typeof одинаковый
источник

AV

Artem Veremienko in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий
Можно еще хоистинг упомянуть кнеш
он зависит от объявления
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Ok, на счет контекста this и bind логично, но почему стрелочная функция это не объект - это странно слышать. Может быть есть ссылочка где я могу  восполнить этот пробел? Буду вам весьма признателен
источник

Д

Дмитрий in NodeUA - JavaScript and Node.js in Ukraine
Learn.javascript и mdn в помощь
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Так я там был. Я даже вам пример привел:
Object.getOwnPropertyDescriptors( () => {} )
возвращает объект
источник