25.09.2016, 20:18
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,503
|
|
function senslessConvertToString(n){
return n === null ? '' : (+n || 0).toString()
}
console.log(senslessConvertToString(null)); //''
console.log(senslessConvertToString('s23')); //'0'
Но с чего вдруг должно быть именно вот так, и никак иначе, мне всё ещё непонятно. Приведение типов в пыхе ну вот ни капельки не логичнее чем в жабе, а скорее даже совсем наоборот.
Синдром утёнка?
__________________
29375, 35
Последний раз редактировалось Aetae, 25.09.2016 в 20:24.
|
|
25.09.2016, 21:00
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
С того, что практика всегда идет по легкому пути. Я понимаю, что пых изначально и заточен на рендер, а жабаскрипт на что тогда?
Причем тут логика? При том, что академизм. Типа вот так правильно. А потом сидишь и смотришь на NaN в корзине или на undefined вместо ничего, лол.
Ну то есть что такое NaN, null, undefined в человеческой логике? Это ничего. Ничего и должно выводиться.
|
|
25.09.2016, 21:02
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от warren buffet
|
потом сидишь и смотришь на NaN в корзине или на undefined
|
...и понимаешь в чем проблема
Сообщение от warren buffet
|
есть что такое NaN, null, undefined в человеческой логике
|
...это для программистской логики
Последний раз редактировалось Rise, 25.09.2016 в 21:05.
|
|
25.09.2016, 21:07
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Вот смотри сколько геморроя. Там просто id-am-ap, числа, в куках, куки текст, значит там может быть что угодно, или может быть ничего. Проверь, может я тупой и можно упростить, ибо мне пришлось регой еще проверять, чтобы эти гребаные NaN не проверять.
is_numeric=function(v){
return /^\d?\d+\.?\d*$/.test(v);
},
get_cart=function() {
var c=oCookie.load(key);
if(!c) return {};
try{cart=JSON.parse(c);}catch(e){return {};}
for(var id in this.cart){
var item=cart[id];
if( is_numeric(id)==false
|| typeof item.am==='undefined'
|| typeof item.ap==='undefined'
|| is_numeric(item.ap)==false
|| is_numeric(item.am)==false ) {
delete(cart[id]);
continue;
}
oCookie.save(key,JSON.stringify(cart));
}
return cart;
},
Последний раз редактировалось warren buffet, 25.09.2016 в 21:09.
|
|
25.09.2016, 21:12
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сообщение от Rise
|
это для программистской логики
|
var_dump() для программистской логики. )))
|
|
25.09.2016, 21:31
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Прикол, отпостил эту хрень и косяк нашел. for(var id in this.cart) - вот еще подстава с этими this. Не должно работать, а работает, потому что забыл var тут try{cart=JSON.parse(c);} и все срослось. )
|
|
25.09.2016, 21:35
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от warren buffet
|
может я тупой и можно упростить
|
есть специальные функции isNaN() и isFinite()
|
|
25.09.2016, 22:15
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
warren buffet, упростил твою хрень должно работать
if (isNaN(id) || isNaN(cart[id].ap) || isNaN(cart[id].am)) delete(cart[id]);
|
|
25.09.2016, 22:22
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Rise, а если нету cart[id].ap? Или если там -30? Или 30.35?
Переменная должна быть, там должно быть целое положительное число. И еще этот NaN проверить надо.
Я понимаю, что юзер чинить куки не полезет, но туда может записаться какая угодно хрень теоретически.
|
|
25.09.2016, 22:49
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от warren buffet
|
там должно быть целое положительное число
|
в реге указано что должно быть остальное твои фантазии
|
|
|
|