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();
}
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
Publica un comentari a l'entrada