Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 25.09.2016, 20:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 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.
Ответить с цитированием
  #22 (permalink)  
Старый 25.09.2016, 21:00
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

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

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

Ну то есть что такое NaN, null, undefined в человеческой логике? Это ничего. Ничего и должно выводиться.
Ответить с цитированием
  #23 (permalink)  
Старый 25.09.2016, 21:02
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от warren buffet Посмотреть сообщение
потом сидишь и смотришь на NaN в корзине или на undefined
...и понимаешь в чем проблема
Сообщение от warren buffet Посмотреть сообщение
есть что такое NaN, null, undefined в человеческой логике
...это для программистской логики

Последний раз редактировалось Rise, 25.09.2016 в 21:05.
Ответить с цитированием
  #24 (permalink)  
Старый 25.09.2016, 21:07
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 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 (permalink)  
Старый 25.09.2016, 21:12
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от Rise
это для программистской логики
var_dump() для программистской логики. )))
Ответить с цитированием
  #26 (permalink)  
Старый 25.09.2016, 21:31
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Прикол, отпостил эту хрень и косяк нашел. for(var id in this.cart) - вот еще подстава с этими this. Не должно работать, а работает, потому что забыл var тут try{cart=JSON.parse(c);} и все срослось. )
Ответить с цитированием
  #27 (permalink)  
Старый 25.09.2016, 21:35
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от warren buffet Посмотреть сообщение
может я тупой и можно упростить
есть специальные функции isNaN() и isFinite()
Ответить с цитированием
  #28 (permalink)  
Старый 25.09.2016, 22:15
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

warren buffet, упростил твою хрень должно работать
if (isNaN(id) || isNaN(cart[id].ap) || isNaN(cart[id].am)) delete(cart[id]);
Ответить с цитированием
  #29 (permalink)  
Старый 25.09.2016, 22:22
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Rise, а если нету cart[id].ap? Или если там -30? Или 30.35?

Переменная должна быть, там должно быть целое положительное число. И еще этот NaN проверить надо.

Я понимаю, что юзер чинить куки не полезет, но туда может записаться какая угодно хрень теоретически.
Ответить с цитированием
  #30 (permalink)  
Старый 25.09.2016, 22:49
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от warren buffet Посмотреть сообщение
там должно быть целое положительное число
в реге указано что должно быть остальное твои фантазии
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
typeof возвращает значение undefied у строки,которая содержится в ячейке таблицы Misterdark Events/DOM/Window 8 16.04.2016 08:03
Уточненное определение типа объекта - typeOf _0_ Ваши сайты и скрипты 4 01.09.2014 17:12
Пожалуйста, кому не лень, посмотрите код, что он примерно делает?? arsen97 Общие вопросы Javascript 1 15.08.2014 16:51
Кроссбраузерная обертка AttachEvent Dim@ Ваши сайты и скрипты 13 21.08.2012 21:21
Javascript quiz · Perfection kills Octane Оффтопик 49 16.02.2010 12:46