web-dev-qa-db-fra.com

Vérification du code jQuery / Javascript, si non défini

Ce code est-il bon?

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

ou devrais-je faire

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

J'aime ça:

if (wlocation !== undefined)

Mais si vous préférez, la deuxième façon ne serait pas celle que vous avez publiée. Ce serait:

if (typeof wlocation  !== "undefined")
84
Diego

J'aime généralement la version raccourcie:

if (!!wlocation) { window.location = wlocation; }
13
jeremy

$. fn.attr (attributeName) renvoie la valeur d'attribut sous forme de chaîne, ou undefined lorsque l'attribut n'est pas présent.

Puisque "" et undefined sont tous les deux fausses (évaluées à false lorsqu'elles sont forcées à booléennes) en JavaScript, dans ce cas j'écrirais la vérification comme ci-dessous:

if (wlocation) { ... }
4
Bruno