Soy nuevo en el aprendizaje de Javascript y me he encontrado con un problema cuya razón de ser no puedo entender en un curso en línea. Por favor, eche un vistazo al código a continuación.
function palindrome(word){ let backwardWord = ""; for (letter of word){ // Adding letter at the beginning of the backward string backwardWord = letter + backwardWord; } if (word.toLowerCase() === backwardWord.toLowerCase()) return true else return false } palindrome('racecar');
Como sabrá, esta función tiene como objetivo encontrar si la cadena se lee igual hacia adelante o hacia atrás.
Mi pregunta es, por lo que sé, si la declaración requiere {} para ejecutarse, y el retorno solo se puede usar en la función, no en una declaración if. Entonces, ¿por qué no hay {} en la declaración if y por qué se podría usar un retorno en el código anterior?
Intenté reescribir una función usando el mismo formato, pero devuelve indefinido en lugar de verdadero.
let a=1 function test(){ if (a===1) return true else return false }
Gracias a cualquiera que responda esta pregunta, eso ayudará mucho ya que estuve desconcertado durante la última hora y media y no pude.
En primer lugar, la segunda función se ejecuta y devuelve verdadero
let a=1 function test(){ if (a===1) return true else return false } console.log(test()); console.log(typeof(test()));
Si tiene un código de línea después de if
, {} no son necesarios.
Y aquí está su primer código. Mejor uso for (let letter of word)
function palindrome(word){ let backwardWord = ""; for (let letter of word){ backwardWord = letter + backwardWord; } if (word.toLowerCase() === backwardWord.toLowerCase()){ console.log(backwardWord); return true; } else return false } console.log(palindrome('racecar'));
Y por último, la declaración de return
lo sacará de la función de inmediato. Está devolviendo verdadero que tiene un tipo boolean
, puede ver usando la función typeof()
en el segundo código.
Cuando solo hay una línea dentro de un bloque, se puede omitir {}. por ejemplo:
for(int i=0;i<5;i++){ print(i) }
Se puede escribir como:
for(int i=0;i<5;i++) print(i)
En cuanto a su segunda opción, se muestra indefinido porque ha definido su función, pero nunca la llamó ni la usó. si escribes
test()
en la siguiente línea de su código, obtendrá true
como respuesta.
Se le permite return
desde cualquier lugar dentro de una función. return
, al igual que break
, deja inmediatamente cualquier bloque que esté ejecutando.