Anonymous
вариант isFinite(n) && isFinite(parseFloat(n)) чем хуже !isNaN(parseFloat(n)) && isFinite(n)?
GG
isFinite и Number.isFinite по разному работают. Первую не надо использовать
Anonymous
Мне кажется они на своей волне)
нужно поинтересоваться, как я понял ЖС это такие грабли которые можно огрести в самый неподходящий момент)
GG
почему?
Там пример есть https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/isFinite
Anonymous
isFinite("0"); // true, но было бы false если использовать // более надежный вариант Number.isFinite("0")
Anonymous
этот?
Sergey
Экономия на спичках, но да, меньше нагрузки)
Anonymous
Вот спасибо за тест
Anonymous
вообще такие проверки юзаются при работе с большими массивами, поэтому экономия на производительности может быть полезна
Anonymous
отличия глобальной isFinite от неглобальной только тем, что она приводит строку к числу
Anonymous
но мы то проверяем, что переменная является числом
Anonymous
Anonymous
вот глобальная, пожалуйста
GG
отличия глобальной isFinite от неглобальной только тем, что она приводит строку к числу
isFinite проверяет тип на число исключая NaN и Infinity, если она на строку будет возращать true, то это в принципе не правильно
Anonymous
ладно
GG
по идее не в нашей задаче
Ну тогда сорь что вмешался в ваши тесты
Anonymous
всё это костыли жаваскриптовские
Anonymous
всёравно задачу нужно выполнять конкретную и тестировать
Anonymous
плохо только, что такие простые вещи меняются. как я понял Number.isFinite теперь работает корректно, как нам надо, но для конкретно этой функции неправильно.
Sergey
Ну тогда сорь что вмешался в ваши тесты
а может я и не прав что не в нашей... я запутался чет
Anonymous
как по ES6 надо проверять, что переменная строка или примитив число является числом?
Костя
===?
Костя
смотря что тебе нужно
Костя
если тебе нужно быть уверенным, что число и правда число, тогда ===
Костя
если я тебя правильно понял
Anonymous
let n = 1; или let n = '1'; способами ES6 как будем проверять, что там действительно число?
Костя
cvjnhсмотря что тебе нужно
Sergey
Не представляю на сколько правильно. Но логика была вроде)
Anonymous
да я понял, просто хочу узнать как кодер ES6 напишет функцию из статьи Кантер isNumeric
Костя
ну так это другой разговор
Sergey
Number.isFinite все
false на '123' а нужно true
Anonymous
тогда "1" не пройдёт тест
GG
false на '123' а нужно true
И не должно быть тру
Sergey
false на '123' а нужно true
'123' это не число. А строка
Sergey
Anonymous
типа это строка и нужно сначала её привести к числу?
Anonymous
Просто 123 это не число. Это джаваскрипт, сынок.
Sergey
А распарсить
Sergey
Ребят вы тему вообще не курите(
Anonymous
так
Anonymous
Тогда как проверить, что строка является числом?
Anonymous
это начальное условие в уроке Кантера
Sergey
Задача: проверить является ли переменная числом или строкой в которой записано число (приводимой к числу)
Костя
а n == +n то проходит?)
ну так там то прведение типа срабатывает
Anonymous
Ты никогда не угадаешь что тебе выдаст жс. Это как первые свидания - не знаешь как себя вести с ней(ну то есть жс)
Anonymous
Кто-нибудь читал ecma стандарт?
Anonymous
Я читал
Sergey
Я как мы выяснили теперь не используют глобальный isFinite поэтому мы хотим переписать функцию без него
Anonymous
Но ниче не помню кек
Anonymous
Есть таблицы приведения типов. Не надо тут
Да я только вчера чуствовал такую же боль чуть ниже спины. Потому что оно должно так работать, но не работает. Мне ответили "это жс, сынок". Выучил эту фразу - могу считаться почти сеньором.
Дима
Задача: проверить является ли переменная числом или строкой в которой записано число (приводимой к числу)
Нужны дополнительные условия — требуется ли тебе Infinite, что делать с +- 0 и так далее
Костя
а почему бы не сделать parseInt(n) == n?
Костя
сморозил
Костя
+typeof
Sergey
Нужны дополнительные условия — требуется ли тебе Infinite, что делать с +- 0 и так далее
Условие по сути повторить поведение функции var isNumeric = (n)=>{ return !isNaN(parseFloat(n)) && isFinite(n); } без глобальных isFinite
Anonymous
Прочитать стандарт isFinite и переписать ее
Sergey
Почему без глобальных?
Люди ругаются что это не по канону :D