Anonymous
😅
Rafael 🌵
Ну ты понял
Rafael 🌵
На других языках прогал?
Rafael 🌵
Если да, то на каких
Anonymous
на с, и немного на жабе
Rafael 🌵
Немного, это сколько?
Rafael 🌵
И насколько тебе нужны основы знать?
Anonymous
Немного, это сколько?
калькулятор писал
Rafael 🌵
Нет, не хватит тебе недели
Anonymous
Oleg
Месяца тоже врядли хватит
Rustam
16 часов в сутки, активная практика
Rustam
ключевой момент - освой .reduce .filter .map .forEach для массивов
Rustam
не будет каши если это практика
Rafael 🌵
Я за 2 месяца, тихонечко, не спеша, по 1 часу в сутки сидя в чатике выучил чуть-чуть
Rustam
все разные
Rafael 🌵
Ну, я ппц практик на самом то деле
Oleg
Ещё зависит от уровня "освоить"
Rustam
лучшее задание для начала я думаю парсинг файлов
Nikolay
На hackerrank есть 30 days of code, по нему можно основы на раз два на любом яп выучить
Anonymous
https://learn.javascript.ru/number
Anonymous
function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
Anonymous
Почему автор использует две функции? IsNaN и IsFinite, почему не обходится проверкой isFinite(parseFloat(n))?
Anonymous
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/isFinite isFinite(Infinity); // false isFinite(NaN); // false isFinite(-Infinity); // false isFinite(0); // true isFinite(2e64); // true isFinite("0"); // true, но было бы false если использовать // более надежный вариант Number.isFinite("0")
Костя
парни, реально ли за неделю осильть основы джаваскрипта?
если до этого на сиподоном прогал, то за пару дней можно понять все, кроме прототипов и некоторых специичных для браузера вещей
Костя
на сиподобном
Костя
т.е, синтаксис жаваскрипта осваивать не придется
Rafael 🌵
Я плакал из-за невозможности явно указать, как передавать значения: по ссылке или по значению
Костя
ну, кроме сей нигде так вот явно и нельзя
Anonymous
Я плакал из-за невозможности явно указать, как передавать значения: по ссылке или по значению
если тебе прям явно, то выбирай между примитивами и объектами. да геморней, но можешь нахреначить декораты и заюзать геттеры и сеттеры. если ты прям такой поклонник ссылок.
Anonymous
на мой плевой вопрос кто-то даст ответ?
Anonymous
function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); }
Anonymous
мой вариант isFinite(parseFloat(n))
Rafael 🌵
Если ты на вход продашь 'abc', то твой код упадет с ошибкой
Anonymous
покажи пример где он будет хуже
Anonymous
Anonymous
не упал
Anonymous
ещё варианты?
Rafael 🌵
a12
Rafael 🌵
Попробуй ввести
Anonymous
Rafael 🌵
FF2
Anonymous
isFinite(parseFloat('FF2')); false
usernameak
тут syntax error
usernameak
хелп
usernameak
айййййййййййййй
Vitaly
isFinite(parseFloat('FF2')); false
в данном случае isFinite достаточно
usernameak
в стрелочную функцию ретарн поставил
Rafael 🌵
isFinite(parseFloat('FF2')); false
Да, соглашусь с тобой, ты прав, потому что на NaN isFinite вернет false, так что крайние случаи твоё решение покрывает
Anonymous
вот и я подумал, почему Илья Кантер в своём учебнике усложнил проверку
Anonymous
не просто так он это сделал, поэтому сразу к вам, профессионалам! :)))
Vitaly
вот и я подумал, почему Илья Кантер в своём учебнике усложнил проверку
вот еще https://stackoverflow.com/questions/5690071/why-check-for-isnan-after-isfinite
Anonymous
там parseFloat не юзается
Anonymous
возможно дело в совместимости или какой-то скрытой оптимизации, поэтому вопрос к профессионалам))
Anonymous
Anonymous
Сам Кантер объясняет так и здесь не сказано про совместимость и оптимизацию.
Anonymous
Anonymous
он говорит, что правая часть отсекает true/false/null и '', но isFinite+parseFloat тоже отсекает
Anonymous
при этом отсекается тот же самый NaN
Sergey
Отсеки :)
Anonymous
Anonymous
вот за этим я и писал сюда
Sergey
Вся фишка видимо именно в том что в isFinite идет приведение, а parse парсит, поэтому результаты раные: <+'123sdfs' >NaN >parseFloat('123sdfs') <123 И как следствие <!isNaN(parseFloat('123asd')) && isFinite('123asd'); >false <isFinite(parseFloat('123asd')); >true
GG
Первое условие не нужно
Anonymous
а если так isFinite(parseFloat(n)) && isFinite(n) ?
Sergey
вот за этим я и писал сюда
Но извилины ты мне хорошо пошевелил :)
Anonymous
типа больше нагрузки получается и функция isNaN проще?
Дима
isNaN сам по себе просто мало что тебе скажет
Sergey
Вот на счет реализации не знаю, к сожалению.
Anonymous
parseFloat число возвращает, поэтому isFinite проходит после этого
GG
Не надо юзать глобальную функцию isFinite
Дима
Если только не юзать пофикшенную версию Number.isNaN
GG
Надо юзать Number.isFinite
Sergey
Мне кажется они на своей волне)