5075

Айтишник родился

Айтишник родился
0
Автор поста оценил этот комментарий
NaN это не определенная операция, например если попробовать поделить строку на число. Для бесконечности есть infinity же
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Zanuda mode: NaN - это Not a Number

1
Рыцарь сарказма
Автор поста оценил этот комментарий

Чушь какая-то... Ну запусти, что ли, js, прежде чем такое писать...

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Удивительно, но лн прав, просто нужно складывать строку и число и тогда будет знак определяться, как конкатенация . "1"+1

показать ответы
5
Автор поста оценил этот комментарий
1+1 = 2
"1" + 1 = 2
"1" + "1" = 11
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Сразу видно, что вы учили JavaScript, у кого он родной, знают, что 1 + "1" = 11 ))))

показать ответы
КапибараБезБара
Автор поста оценил этот комментарий

Юнит тесты для этого как раз придумали.

Кстати об ошибках, готов?

Вот у тебя простейшая функция: console.log которая служит для вывода информации.

Если ты пихнёшь в неё ЛЮБОЕ ЗНАЧЕНИЕ кроме строки при подходе лишь выдавания ошибок, то получишь ошибку и нужно будет везде писать toString.

И допустим нам надо вывести текст: Объект обработан:/Здесь сам объект/

А вот как это будет в JS (старой версии):

console.log('Объект обработан:'+object)

В современных можно ещё так:

console.log(`Объект обработан:{object}`)

А в Python:

console.log(f'Объект обработан:{object}') даст тебе ошибку, потому что ты не прописал у object магический метод __str__

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Не совсем понятно , как юнит тесты здесь помогают. Юнит тесты закроют лишь малую часть возможных проблем. Тестовая среда отличается от реальной и, более того, вы не покрываете в юнитах взаимодействия компонентов. Если где-то на входе вы не обработали типы, вы можете получить катастрофу, про которую вы не узнаете, пока она не произойдет.

1
Автор поста оценил этот комментарий

1 + 1 + '1' = '21'

'1' + 1 + 1 = '111'

- это предсказуемо? Может быть, но лучше бы там была ошибка типов при наличии хорошего сахара для обработки исключений, как в питоне.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Все верно, не понимаю, но почему-то ошибки людям не нравятся. Лучше увидеть ошибку, чем не замечать того, что в прилаге в принципе расчеты неверны, пока не случится инцидент.

показать ответы
0
Автор поста оценил этот комментарий
Явно нет, т.к. (яблоко + одно) не равно на js (одно яблоко). Это всего лишь применение русского языка. А на математике будет 2 яблока. Нужно было указать через что решать.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Твой родной не джаваскрипт

1
Автор поста оценил этот комментарий

Этот пост залетает в Горячее на реактивной тяге от полыхающих жоп людей, оставляющих комментарии. Так работает система горячего, что уж тут.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А ты хорош

0
Автор поста оценил этот комментарий
Тут очень важны пробелы и их отсутствие
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Не важны, + преобразует в инт, далее сложение. Курсы за 1 месяц стать программистом

2
Автор поста оценил этот комментарий

Ну с первым примером все просто

!! - приводит к логическому значению.

А т.к. мы передаем не true или false, а 'true' и 'false', т.е. две строки, то и сравниваем, по сути, true и true.

По этой же логике:

!!'false' == !!'abrakadabra' // -> true

!!'false' == !!'' // -> false (пустая строка между двух кавычек)

!!'false' == !!false // -> false

!!'true' == !!true // -> true


Со вторым случаем как-то не сталкивался, но, судя по всему, т.к. на выходе получаем строку, то вся внутрянка массива преобразуется в строку и операция идентична "1,2,3"+"4,5,6" = "1,2,3,4,5,6"

То же самое будет верно и для

[1,2,3]+[4,5,6]+[7,8,9] // -> 1,2,34,5,67,8,9'

и для

[1,"a",3]+[4,"b",6]+[7,"c",9] -> '1,a,34,b,67,c,9'


Логика та же, что и с C: не зная спецификацию языка все кажется магией и не поддается логике.

раскрыть ветку (1)
Автор поста оценил этот комментарий

В некоторых ЯП 'false' == false, я думаю это имеет некоторый смысл и спасает как "защита от дебила".


В случае с сложением проще было бы конвертировать все мат. операции одинаково, проблема судя по всему, в том, что объединили знак конкатенации и сложения под одним символом

0
Автор поста оценил этот комментарий

Кто шарит? В JS автоматического преобразования типа данных нет что ли? 1+1 должно быть 2, так как тип данных число. 11 будет если сделать жёсткую привязку тип данных строка

раскрыть ветку (1)
Автор поста оценил этот комментарий

Есть просто сложение строки и числа преобразует число в строку, вычитание преобразует строку в число. Какая-то логика есть, но очень странная. Есть множество других странных вещей, например:

!!'false' == !!'true' // -> true

[1, 2, 3] + [4, 5, 6] // -> '1,2,34,5,6

показать ответы
0
Автор поста оценил этот комментарий

Чего все доебались до JavaScript? Такая фигня же в любом языке с динамической типизацией есть, разве нет?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет, такая проблема, по определению, может быть только в ЯП с дин. типизацией, где символ имеет множество применений, в данном случае он является оператором сложения и оператором конкатенации. Приведение к определенному типу также работает по разному

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества