J'ai ce code
function greetPerson(name: string) { let greet; if (name === "john") { let greet = "hello john"; } else { let greet = "hi there"; } console.log(greet); } greetPerson("john");
quand j'ai ces trois déclarations, elles devraient être trois différentes dans chaque portée. Pourquoi est-ce que j'obtiens hello john
comme sortie?
3 Réponses :
Vous déclarez la même variable dans chaque condition
function greetPerson(name: string) { let greet; if(name === "john") { greet = "hello john"; } else { greet = "hi there"; } console.log(greet); } greetPerson("john");
changez-la comme ceci:
function greetPerson(name: string) { let greet; if(name === "john") { let greet = "hello john"; } else { let greet = "hi there"; } console.log(greet); } greetPerson("john");
Je pense que vous pouvez refactoriser votre code. Sortie de votre fonction: indéfinie. Ma solution et son travail:
function greetPerson(name) { if(name === "john") { return "hello john" } else { return "hi there" } } display.log(greetPerson("john"))
Vous faites 2 erreurs ici.
function greetPerson(name) { let greetn= ''; if(name === "john") { greet = "hello john"; } else { greet = "hi there"; } console.log(greet); } greetPerson("john");
Votre sortie:
indéfini
1. pas JavaScript avec le
nom: chaîne
2. non