Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.08.2015, 14:33
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

В общем, если я тебя правильно понял, тебе нужна вот такая вот параша
check=function(object, name){
  return name in object&&object[name]!== undefined&&object[name]!==""
}

object={real: {}, emptyString: ""}

alert([
 check(object, "emptyString"), 
 check(object, "undef"),
 check(object, "real")
]
)

Последний раз редактировалось javaQest, 11.08.2015 в 14:41.
Ответить с цитированием
  #12 (permalink)  
Старый 11.08.2015, 14:48
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Слушай я уже до самого простого упростил вопрос
Слушай. Я же уже до простого упростил вопрос, забудь то что выше, если не понятно. Объясни следующее.
//Как получается
If (typeof obj1 !=’undefined’){
	If (typeof obj1.obj2 !=’undefined’){
		If (typeof obj1.obj2.obj3 !=’undefined’){
			var value= obj1.obj2.obj3[0]
                  }
          }
}
//Нужно что-то вроде этого, но без остановки скрипта по ошибкам вроде:
//obj1 - undefined
//obj1.obj2 - undefinded

If (typeof obj1.obj2.obj3 !=’undefined’){
	var value= obj1.obj2.obj3[0]
}


Что касается full_null эта функция пользовательская, мне нужно чтобы значение не было пустым
Ответить с цитированием
  #13 (permalink)  
Старый 11.08.2015, 14:54
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

вот так попробуй
if(window.obj1&&obj1.obj2&&obj1.obj2.obj3&&obj1.obj2.obj3!==undefined) somecode
Ответить с цитированием
  #14 (permalink)  
Старый 11.08.2015, 15:01
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

vuler,
А вообще, тебе проще оборачивать в try. Но что-то у тебя явно там не так. В нормальном коде едва ли такое может понадобиться.
Ответить с цитированием
  #15 (permalink)  
Старый 11.08.2015, 15:42
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

для начала скажите чему равен
console.log(this.form.rulers.format)

я так понял у вас ошибка в "this", попробуйте использувать напрямую нужную вам переменную)
Ответить с цитированием
  #16 (permalink)  
Старый 11.08.2015, 15:50
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от vuler
В результате приходится вначале делать проверку на наличие массива - format, а затем уже проверять на наличие в нем this.name. Можно как-то задать проверку в одну строку без двойных условий и try-catch конструкций?
аа, вот оно чё)
нет, тут наверное никак, если массива нету выдаст ошибку(так и есть)
можно попробывать так
function full_null(elem){//Проверка на полный ноль. отстутсвие или несуществование.
	if (elem=='undefined' || elem==null || elem==""){
		return true;
	}else return false;
}
if (full_null(this.form.rulers.format) && full_null(this.form.rulers.format[this.name]))
			this.rulers.format=this.form.rulers.format[this.name];
Ответить с цитированием
  #17 (permalink)  
Старый 11.08.2015, 15:52
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

Сообщение от KosBeg
нет, тут наверное никак, если массива нету выдаст ошибку(так и есть)
Проверка на наличие переменной
Ответить с цитированием
  #18 (permalink)  
Старый 11.08.2015, 15:58
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Сообщение от KosBeg Посмотреть сообщение
для начала скажите чему равен
console.log(this.form.rulers.format)

я так понял у вас ошибка в "this", попробуйте использувать напрямую нужную вам переменную)
Да нет тут все в порядке с this, просто думал в js есть какае-нибудь дельные функции для проверок .
В php все проще.
if ($rrrr->ssss->form_rulersq['sss']) {
echo 'тут';
}else{
echo 'там';
}
Например этот код пройдет легко. php плевать на то что объекта rrrr не существует, что в нем не существует объект ssss, что в объекте ssss нет массива form_rulersq и т.д.
просто выдаст условие else и продолжит работу. А js начинает проверять существование всей этой цепочки
Ответить с цитированием
  #19 (permalink)  
Старый 11.08.2015, 16:36
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

Сообщение от vuler
А js начинает проверять существование всей этой цепочки
да ничо он не проверяет. У тебя ошибка из-за доступа к свойству undefined, которого не существует.
undefined.foo

любой нормальный язык в этом случае по дефолту отдаст ошибку. Я хз, что там у вас в похапе.за идиотизм, скорей всего просто сахар.
Ответить с цитированием
  #20 (permalink)  
Старый 11.08.2015, 16:53
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Сообщение от javaQest Посмотреть сообщение
да ничо он не проверяет. У тебя ошибка из-за доступа к свойству undefined, которого не существует.
undefined.foo

любой нормальный язык в этом случае по дефолту отдаст ошибку. Я хз, что там у вас в похапе.за идиотизм, скорей всего просто сахар.
А вот на счет этого я бы поспорил, что лучше . Для тебя лучше на Сишке все переменные заранее объявлять, прежде чем с ними что-то делать? И ловить ошибки каждый раз, если ты их не объявил. Или лучше объявлять их динамически, кода понадобятся. Тут можно спорить долго конечно. Везде свои плюсы и минусы. Согласен, что ошибки из-за неверного написания переменных порой заставляют потратить время на их поиск.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка присвоения значений переменной через $.ajax lekba Events/DOM/Window 6 08.07.2013 17:08
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
Проверка на наличие значения Viper jQuery 4 07.04.2010 20:26
проверка на наличие определенных символов arbelon Работа 5 15.05.2009 01:41
Проверка текста на наличие в нем букв zoibana Общие вопросы Javascript 1 03.02.2009 15:48