Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Hедопонимание с typeof (https://javascript.ru/forum/misc/65024-hedoponimanie-s-typeof.html)

warren buffet 24.09.2016 14:29

Я про что и говорю - return... Просто он меня задрал вылезать где не попадя в интерфейсах (с null я уже понял подставу жабы скрипучей блин), а NaN все еще бывает лезет. Практика же идет по самому тупому пути, типа ну будет 0, а хера, будет на три буквы NaN. Зашибись. Лол.

Ну, то есть, каким может быть человеко-читаемый результат вычисления num = +str + 5 ? Что написать в return? )))

warren buffet 24.09.2016 14:36

Академизм

if(foo.length)

// студент, вы сравниваете число на тип boolean
// щаз...

if(foo.length > 0)

// пять, давайте зачетку

Но мы ж так не делаем, нахер академизм, length не может перескочить через 0? Может, а нам известно, что не может.

Aetae 24.09.2016 23:48

Ты скажи мне что ты хошь, я те покажу как надо.)
Стартовый пример ни о чём не говорит.

Яростный Меч 25.09.2016 00:42

Цитата:

Сообщение от warren buffet
Как в математических операциях может возникнуть NaN?

Math.log(-1)

warren buffet 25.09.2016 09:49

Яростный Меч, то есть NaN существует в математике как скажем бесконечность?

warren buffet 25.09.2016 09:51

Aetae, я хочу чтобы null рендерился как "" и чтобы NaN рендерился как 0.

Яростный Меч 25.09.2016 17:19

Цитата:

Сообщение от warren buffet
то есть NaN существует в математике как скажем бесконечность?

бесконечность - это отдельное значение Infinity
например, 1/0 дает бесконечность.

в js сделано так: если для какой-то точки нет значения, но есть предел, то просто берется этот предел (возможно, бесконечный), например
1/0 = Infinity
Math.log(0) = -Infinity
Math.pow(0, 0) = 1

Ну а если даже предела нет, то только тогда подставляется NaN, как в случае Math.log(-1). Вообще говоря, тут будет комплексное число, однако js о таких не в курсе.

warren buffet 25.09.2016 17:34

Да не математика нужна, а чтобы эта пустая хрень не лезла в хтмл. На php просто милое дело

$foo=null;
echo $foo; // ничего

$num='s23';
echo (int) $num; // 0

А сделай на жабе скрипучей так и получишь оно самое.

Aetae 25.09.2016 20:18

function senslessConvertToString(n){
   return n === null ? '' : (+n || 0).toString()
}
console.log(senslessConvertToString(null));   //''
console.log(senslessConvertToString('s23'));  //'0'

Но с чего вдруг должно быть именно вот так, и никак иначе, мне всё ещё непонятно. Приведение типов в пыхе ну вот ни капельки не логичнее чем в жабе, а скорее даже совсем наоборот.
Синдром утёнка?

warren buffet 25.09.2016 21:00

С того, что практика всегда идет по легкому пути. Я понимаю, что пых изначально и заточен на рендер, а жабаскрипт на что тогда?

Причем тут логика? При том, что академизм. Типа вот так правильно. А потом сидишь и смотришь на NaN в корзине или на undefined вместо ничего, лол.

Ну то есть что такое NaN, null, undefined в человеческой логике? Это ничего. Ничего и должно выводиться.


Часовой пояс GMT +3, время: 22:12.