2012-11-05 3 views
0

possible en double:
JavaScript OR (||) variable assignment explanationAffectation de variable avec || en valeur

Quelqu'un peut-il expliquer ce que cette ligne fait et comment?

var scrollTop = html.scrollTop || body && body.scrollTop || 0; 
+0

Qu'en est-il de cette ligne ne comprenez-vous pas? – Oded

+0

Utilisez la première valeur non nulle dans cet ordre: html.scrollTop, body.scrollTop, 0. –

+0

qu'est ce que mean || && || dans cette phrase? Comment expliquer que dans "si d'autre" façon –

Répondre

4

Vous pouvez penser à la logique un peu comme ça ...

if (html.scrollTop > 0) { 
    scrollTop = html.scrollTop; 
    return; 
} 

if (body != undefined) { 
    if (body.scrollTop > 0) { 
     scrollTop = body.scrollTop; 
     return; 
    } 

} 

scrollTop = 0; 
return; 

Elle fixe la variable scrollTop utilisant une liste de priorités.

  1. D'abord, essayez d'utiliser html.scrollTop s'il existe et s'il est supérieur à zéro.
  2. Sinon, assurez-vous que body existe et utilisez body.scrollTop s'il est supérieur à zéro.
  3. Si tout le reste échoue, vient de mettre à 0
+0

est-ce strict (html.scrollTop> 0) ou nous pouvons écrire (html.scrollTop) ?? Merci –

+1

Dans ce cas, vous pouvez écrire 'if (html.scrollTop)'. J'ai utilisé la notation plus longue pour être plus explicite dans l'explication. En JavaScript, l'instruction 'if' peut être utilisée pour vérifier toute condition de vérité (pas zéro, pas de chaîne vide, pas de null, etc.) Mais vous devez faire attention si vous pensez que scrollTop pourrait être un nombre négatif. – njr101

Questions connexes