Aujourd'hui, j'ai commencé à coder une page qui invite l'utilisateur à choisir leur spec PC, et le code est le suivantvariables locales et globales en javascript
<html>
<title>Computer Specification Chooser</title>
<head>
<script type="text/javascript">
var compSpec = document.compChooser;
function processorUnavailable_onclick()
{
alert("Sorry that processor speed is currently unavailable");
compSpec.processor[2].checked = true;
}
</script>
</head>
<body>
<form name="compChooser">
<p>Tick all components you wan included on your computer</p>
<p>
DVD-ROM
<input type="checkbox" name="chkDVD" value="DVD-ROM" />
<br />
CD-ROM
<input type="checkbox" name="chkCD" value="CD-ROM" />
<br />
Zip Drive
<input type="checkbox" name="chkZIP" value="ZIP DRIVE" />
</p>
<p>
Select the processor speed you require
<br />
<input type="radio" name="processor" value="3.8" />
3.8 GHZ
<input type="radio" name="processor" value="4.8" onclick="processorUnavailable_onclick()" />
4.8 GHZ
<input type="radio" name="processor" value="6" />
6 GHZ
</p>
<input type="button" name="btnCheck" value="Check Form" />
</form>
</body>
</html>
Le problème que je suis confronté est la fonction que j'ai lié au gestionnaire d'événement, quand j'essaie de choisir le bouton radio de la valeur du processeur 4.8 GHz, oui il m'avertit avec le message à l'intérieur de la fonction, mais après cela, il n'effectue pas l'instruction suivante à l'intérieur de la fonction , c'est-à-dire vérifier la valeur de processeur suivante 6 GHZ. J'ai essayé mon effort pour le changer et le tester, et savoir quand j'ai placé le var compSpec = document.compChooser
comme variable locale dans la fonction au lieu d'une variable globale, l'instruction suivante pourrait être exécutée.
Mais je pensais pour une variable globale, elle est accessible partout sur la page et aussi dans une fonction.Mais pourquoi maintenant je ne peux pas y accéder à l'intérieur de ma fonction ?? En outre, je tombe sur un article étrange lors de googler, il dit que quand une variable globale est créée, elle est ajoutée à l'objet window.I juste curieux de savoir pourquoi cela se produit ?? Et quels sont les avantages et les utilisations?
MERCI
Enfin, je sais que le problème est sur l'analyse syntaxique vers le bas, mais un autre problème est ?? Pourquoi quand je l'appelle une fonction avant sa création, il est encore possible d'être exécuté ?? – caramel1995
C'est une bonne question, il y a quelques bonnes réponses ici: http://stackoverflow.com/questions/261599/why-can-i-use-a-function-before-its-defined-in-javascript – meouw