Par curiosité, je vois souvent des situations telles que:
switch(something) {
case 'alice':
return something;
break;
}
Où la break
semble être complètement inutile, y a-t-il une raison pour que ce soit là quand même?
L'instruction break;
était peut-être présente avant l'introduction de l'instruction return
. En tant que tel, il est devenu redondant et peut être supprimé.
En fait, lorsque vous exécutez ce code via jslint , il affichera cette erreur:
Inaccessible 'pause' après 'retour'.
Que ce soit ou non attentif à ce conseil est à vous; cela peut être utile au cours du développement si vous essayez plusieurs choses avant de choisir un style particulier.
Ceci est un style d'écriture alternatif qui pourrait être considéré comme une meilleure pratique:
var retval = null;
switch (something) {
case 'alice':
retval = something;
break;
// ...
}
return retval;
break
indique à javascript d'arrêter l'évaluation des cas dans le bloc switch
. L'exécution du code continue au-delà de la tranche switch
de fermeture. L'instruction return
dans l'exemple de code empêchera en effet toute trace de son passé, y compris les autres instructions case
et tout ce qui suit le bloc switch
.
Je mets une déclaration break
dans chaque cas par habitude. Si j’écrivais un cas sans break
, je pourrais copier et coller des blocs de code dans le futur et l’absence de déclaration break
deviendrait un bogue comme celui-ci:
function whereLivesA(species){
switch(species){
case 'worms':
// Relying on return to prevent further code execution within the switch
// block works but is ~bad~ smelly (according to plato :D)
var habitat = 'dirt'
return (species + ' live in ' + habitat);
case 'bees':
var habitat = 'Hive';
break;
}
// Stuff to do after the switch statement (unless you returned already)
var str = species+' live in '+habitat;
return str;
}
console.log('whereLivesA');
console.log(whereLivesA("worms"));
console.log(whereLivesA("bees"));
/* Output:
whereLivesA
worms live in dirt
bees live in Hive
*/
function whereLivesB(species){
switch(species){
case "worms":
// what if future code changes remove `return` and don't add `break`?
// return (species + ' live in ' + habitat)
var habitat = 'dirt';
// break;
case "bees":
var habitat = 'Hive'
break;
}
// Stuff to do after the switch statement (unless you returned already)
var str = species+' live in '+habitat;
return str;
}
console.log('whereLivesB');
console.log(whereLivesB("bees"));
console.log(whereLivesB("worms"));
/* Output:
whereLivesB
bees live in Hive
worms live in Hive
*/
function whereLivesCorrect(species){
switch(species){
case "worms":
var habitat = 'dirt';
break;
case "bees":
var habitat = 'Hive'
break;
}
// Stuff to do after the switch statement (unless you returned already)
var str = species+' live in '+habitat;
return str;
}
console.log('whereLivesCorrect');
console.log(whereLivesCorrect("bees"));
console.log(whereLivesCorrect("worms"));
/* Output:
whereLivesCorrect
bees live in Hive
worms live in dirt
*/
Débutants JS: si vous ne souhaitez pas l'enregistrer dans un fichier et exécuter node filename
, vous pouvez appuyer sur F12 et coller ce script ou d'autres scripts autonomes dans la console de votre navigateur pour l'exécuter.
Si vous utilisez node.js, vous pouvez également taper node
sur une ligne de commande pour démarrer une console node
et la coller à cet endroit.
Le mot clé break
est utilisé pour terminer l'instruction ou pour quitter la boucle afin qu'elle ne continue pas à s'exécuter.
par exemple:
html
what's your age?: <input type="text" id="ageOf"><br>
<input type="submit" onSubmit="postReply();">
<div id="reply"></div>
js
var userResponse = document.getElementById('ageOf');
var response = document.getElementById('reply');
function postReply() {
switch(ageOf) {
case 1: ageOf<18 {
response.innerHTML = "You are still young.";
break;
}
case 2: ageOf>18 && ageOf<45 {
response.innerHTML = "You are getting up there...";
break;
}
case 3: ageOf >= 45 {
response.innerHTML = "You are over the hill!";
break;
}
}
ainsi, lors de la soumission, le formulaire doit appeler function postReply()
, vérifier la réponse de l'utilisateur et, en fonction de la valeur, renvoyer l'une de ces déclarations.