Primer mal de cap en javascript, l'abast de les variables

Per sort o per desgràcia vaig decidir provar javascript (en part per què volia veure com funcionava jasmine per fer tests, hauré de fer un altre post amb això).
Aneu a veure el meu mal de cap, imaginem aquest codi:

function recorrecvector2(){
  for(i=0;i<vector2.length;i++){
      //fer algo amb el vector2
     }
  }

for(i=0;i<Vector.length;i++){
  recorrecvecto2();
}


Així a simple vista pot resultat correcte, però, però, però... resulta que en Js al no haver declaració de tipus, les variables "comencen el seu abast" quan són declarades i no són "substituïdes" a no ser que posem var. Si ens fixem amb l'index i dels bucles, és la mateixa variable. tant en el bucle de fora com en la funcio recorrecvector2. Els resultats són esotèrics ;). Amb una declaració estricta de tipus això no passaria, però javascript (ni en general cap llenguatge d'scripting) solen tindre eixe tipus de declaració. Després de dos dies calfant-me el cap, amb alerts per totes bandes, simplement posar un var davant de la primera i en cada bucle for se soluciona:

function recorrecvector2(){
  for(var i=0;i<vector2.length;i++){
      //fer algo amb el vector2
     }
  }

for(var i=0;i<Vector.length;i++){
  recorrecvecto2();
}

Comentaris

Entrades populars d'aquest blog

Clean Code... WTF? És realment viable?

Comparativa dels Sistemes Polítics Espanyol, Valencià i d'un partit polític. (II)

Hui he vist la por als ulls