Anonymous
😅
Rafael 🌵
Ну ты понял
Rafael 🌵
На других языках прогал?
Rafael 🌵
Если да, то на каких
Anonymous
на с, и немного на жабе
Rafael 🌵
Немного, это сколько?
Rafael 🌵
И насколько тебе нужны основы знать?
Anonymous
Rafael 🌵
Нет, не хватит тебе недели
Anonymous
Oleg
Месяца тоже врядли хватит
Rustam
Rustam
16 часов в сутки, активная практика
Rustam
ключевой момент - освой .reduce .filter .map .forEach для массивов
Rafael 🌵
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 🌵
Костя
на сиподобном
Костя
т.е, синтаксис жаваскрипта осваивать не придется
Rafael 🌵
Я плакал из-за невозможности явно указать, как передавать значения: по ссылке или по значению
Костя
ну, кроме сей нигде так вот явно и нельзя
Anonymous
на мой плевой вопрос кто-то даст ответ?
Anonymous
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Rafael 🌵
Anonymous
мой вариант isFinite(parseFloat(n))
Rafael 🌵
Если ты на вход продашь 'abc', то твой код упадет с ошибкой
Anonymous
покажи пример где он будет хуже
Anonymous
Anonymous
не упал
Anonymous
ещё варианты?
Rafael 🌵
a12
Rafael 🌵
Попробуй ввести
Anonymous
Rafael 🌵
FF2
Anonymous
isFinite(parseFloat('FF2'));
false
usernameak
usernameak
хелп
usernameak
айййййййййййййй
Vitaly
usernameak
в стрелочную функцию ретарн поставил
Anonymous
вот и я подумал, почему Илья Кантер в своём учебнике усложнил проверку
Anonymous
не просто так он это сделал, поэтому сразу к вам, профессионалам! :)))
Anonymous
там parseFloat не юзается
Anonymous
возможно дело в совместимости или какой-то скрытой оптимизации, поэтому вопрос к профессионалам))
Anonymous
Anonymous
Сам Кантер объясняет так и здесь не сказано про совместимость и оптимизацию.
Anonymous
Anonymous
он говорит, что правая часть отсекает true/false/null и '', но isFinite+parseFloat тоже отсекает
Anonymous
при этом отсекается тот же самый NaN
Sergey
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) ?
Anonymous
типа больше нагрузки получается и функция isNaN проще?
Дима
isNaN сам по себе просто мало что тебе скажет
Sergey
Вот на счет реализации не знаю, к сожалению.
Anonymous
parseFloat число возвращает, поэтому isFinite проходит после этого
GG
Не надо юзать глобальную функцию isFinite
Дима
Если только не юзать пофикшенную версию Number.isNaN
Anonymous
GG
Надо юзать Number.isFinite
Sergey
Мне кажется они на своей волне)