2012-11-28 3 views
26

Этот код хорош?jQuery/Javascript code check, if not undefined

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation.prop !== undefined) { window.location = wlocation; } 

или я должен сделать

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation.prop !== "undefined") { window.location = wlocation; } 

ответ

65

Мне нравится это:

if (wlocation !== undefined) 

Но если вы предпочитаете второй путь Wouldn» т, как вы разместили. Было бы:

if (typeof wlocation !== "undefined") 
+1

wlocation это просто строка (значение атрибута HREF), поэтому он не имеет никакого пропеллера свойство ... – Bruno

+0

Спасибо, исправленный! – Diego

+0

Спасибо большое, ребята. – Jeremy

2

вы могли бы просто использовать:

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation !== undefined) { window.location = wlocation; } 
10

Я вообще люблю сокращенную версию:

if (!!wlocation) { window.location = wlocation; } 
+2

+1 Действительно замечательно, я не знал команду '!!' для 'not-undefined'. –

+1

@MichelAyres '!!' не является специальным * оператором * или «не неопределенным» ... это в основном два не операторы друг за другом, например; '!! undefined => not (not undefined) => not (true) => false' – Christian