Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Correccion de Truthy Falsy#767

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
joaquinelio wants to merge1 commit intojavascript-tutorial:master
base:master
Choose a base branch
Loading
fromjoaquinelio:falsyfix
Open
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,7 +6,7 @@ importance: 5

Reescriba el `if..else` utilizando operadores ternarios múltiples`'?'`.

Para legibilidad,es recomendad dividirlo en múltiples lineas de código.
Por legibilidad,se recomienda dividirlo en múltiples lineas de código.

```js
let message;
Expand Down
14 changes: 7 additions & 7 deletions1-js/02-first-steps/10-ifelse/article.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -37,29 +37,29 @@ La sentencia `if (…)` evalúa la expresión dentro de sus paréntesis y convie

Recordemos las reglas de conversión del capítulo <info:type-conversions>:

-Elnúmero `0`,unstring vacío `""`, `null`, `undefined`, y `NaN`, se convierten en `false`. Poresto son llamadosvalores "falsos".
- El resto de los valores se convierten en `true`,entonces los llamaremosvalores"verdaderos".
-Los valores:número `0`, string vacío `""`, `null`, `undefined`, y `NaN`,en un contexto booleanose convierten en `false`. Porello, sin ser booleanos, se los conoce comovalores "falsy".
- El resto de los valores se convierten en `true`,y sonvaloresque llamamos "truthy".

Entonces, el código bajo esta condición nunca se ejecutaría:

```js
if (0) { // 0 esfalso
if (0) { // 0 esfalsy
...
}
```

...y dentro de esta condición siempre se ejecutará:

```js
if (1) { // 1 esverdadero
if (1) { // 1 estruthy
...
}
```

También podemos pasar un valor booleano pre-evaluado al `if`, así:

```js
let cond = (year == 2015); // la igualdad evalúa y devuelve un true o false
let cond = (year == 2015); // la igualdadseevalúa y devuelve un true o false

if (cond) {
...
Expand All@@ -68,7 +68,7 @@ if (cond) {

## La cláusula "else"

La sentencia `if` puede contener un bloque `else` ("si no", "en caso contrario") opcional. Este bloque seejecutará cuando la condiciónsea falsa.
La sentencia `if` puede contener un bloque `else` ("si no", "en caso contrario") opcional. Este bloque seejecuta cuando la condiciónresulta falsa.

Por ejemplo:
```js run
Expand DownExpand Up@@ -133,7 +133,7 @@ La Sintaxis es:
let result = condition ? value1 : value2;
```

Se evalúa `condition`: sies verdadera entonces devuelve `value1` , de lo contrario `value2`.
Se evalúa `condition`: siresulta verdadera entonces devuelve `value1` , de lo contrario `value2`.

Por ejemplo:

Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
La respuesta es `2`, ese es el primer valorverdadero.
La respuesta es `2`, ese es el primer valortruthy.

```js run
alert( null || 2 || undefined );
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,10 +4,10 @@ La repuesta: primero `1`, después `2`.
alert( alert(1) || 2 || alert(3) );
```

La llamada a `alert` no retorna un valor. O, en otras palabras, retorna `undefined`.
Una llamada a `alert` no retorna un valor relevante. Siempre retorna `undefined`.

1. El primer OR `||`evalúael operando de la izquierda `alert(1)`.Eso muestra el primer mensaje con `1`.
2.El`alert` retorna `undefined`, por lo que OR se dirige al segundo operando buscando un valorverdadero.
3. El segundo operando `2` es un valorverdadero, por lo quesedetienela ejecución, se retorna`2` y es mostrado por el alert exterior.
1. El primer OR `||`comienza evaluandoel operando de la izquierda `alert(1)`.Este alert muestra el primer mensaje con `1`.
2.Ese mismo`alert` retorna `undefined`, por lo que OR se dirige al segundo operando buscando un valortruthy.
3. El segundo operando `2` es un valortruthy, por lo queel ORdetienesu ejecución y retornael 2. Este 2 es luego mostrado por el alert exterior.

No habrá `3` debido a que la evaluaciónno alcanza a `alert(3)`.
No habrá `3` debido a que la evaluaciónnunca alcanza a `alert(3)`.
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
La respuesta: `null`, porque es el primer valorfalso de la lista.
La respuesta: `null`, porque es el primer valorfalsy de la lista.

```js run
alert(1 && null && 2);
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,6 +4,6 @@ La respuesta: `1` y después `undefined`.
alert( alert(1) && alert(2) );
```

La llamada a `alert` retorna `undefined` (solo muestra un mensaje,así quenohay un valor que retornar relevante)
Una llamada a `alert`siempreretorna `undefined` (solo muestra un mensaje, notiene un valorrelevanteque retornar)

Debido a ello, `&&` evalúa el operando de la izquierda (imprime `1`) e inmediatamente se detiene porque `undefined` esun valor falso. Como `&&` busca un valorfalso ylo retorna, terminamos.
Debido a ello, `&&` evalúa el operando de la izquierda (el cualimprime `1`) e inmediatamente se detiene porque `undefined` esfalsy. Como `&&` busca un valorfalsy,lo retorna y termina.
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,5 +12,5 @@ El resultado de `2 && 3 = 3`, por lo que la expresión se convierte en:
null || 3 || 4
```

Ahora el resultado será el primer valorverdadero: `3`.
Ahora el resultado será el primer valortruthy: `3`.

View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,11 +4,11 @@ Detalles:

```js run
// Corre.
// El resultado de -1 || 0= -1, valorverdadero
// El resultado de -1 || 0es -1, valortruthy
if (-1 || 0) alert( "primero" );

// No corre.
// -1 && 0= 0, valorfalso
// -1 && 0es 0, valorfalsy
if (-1 && 0) alert( "segundo" );

// Se ejecuta
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,12 @@ importance: 3

Escribe un código que pregunte por el inicio de sesión con `propmt`.

Si el visitante ingresa `"Admin"`, entonces`prompt`(pregunta) por una contraseña, sila entrada es una linea vacía o `key:Esc` -- muestra "Cancelado.", si es otra cadena de texto -- entonces muestra "No te conozco".
Si el visitante ingresa `"Admin"`, entonces pregunta por una contraseña con otro `prompt`. Sila entrada es una linea vacía o `key:Esc`, entonces muestra "Cancelado.", si es otra cadena de texto, entonces muestra "No te conozco".

La contraseña se comprueba de la siguiente manera:

- Si es igual a "TheMaster", entonces muestra "Bienvenido!",
- Si es otra cadena de texto -- muetra "Contraseña incorrecta",
- Si es otra cadena de texto, muetra "Contraseña incorrecta",
- Para una cadena de texto vacía o una entrada cancelada, muestra "Cancelado."

El esquema:
Expand Down
26 changes: 13 additions & 13 deletions1-js/02-first-steps/11-logical-operators/article.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -35,7 +35,7 @@ Por ejemplo, el número `1` es tratado como `true`, el número `0` como `false`:

```js run
if (1 || 0) { // Funciona como if( true || false )
alert("valorverdadero!");
alert("¡valortruthy!");
}
```

Expand DownExpand Up@@ -94,14 +94,14 @@ alert(1 || 0); // 1 (1 es un valor verdadero)
alert(null || 1); // 1 (1 es el primer valor verdadero)
alert(null || 0 || 1); // 1 (el primer valor verdadero)

alert(undefined || null || 0); // 0 (todos son valoresfalsos, retorna el último valor)
alert(undefined || null || 0); // 0 (todos son valoresfalsy, retorna el último valor)
```

Esto brinda varios usos interesantes comparados al "OR puro, clásico, de solo booleanos".

1. **Obtener el primer valor verdadero de una lista de variables o expresiones.**

Por ejemplo, tenemos las variables `firstName`, `lastName` y `nickName`, todas opcionales (pueden ser undefined o tener valoresfalsos).
Por ejemplo, tenemos las variables `firstName`, `lastName` y `nickName`, todas opcionales (pueden ser undefined o tener valoresfalsy).

Usemos OR `||` para elegir el que tiene los datos y mostrarlo (o anónimo si no hay nada configurado):

Expand All@@ -115,7 +115,7 @@ Esto brinda varios usos interesantes comparados al "OR puro, clásico, de solo b
*/!*
```

Si todas las variables fueranfalsas, aparecería `"Anonymous"`.
Si todas las variables fueranfalsy, aparecería `"Anonymous"`.

2. **Evaluación del camino más corto.**

Expand All@@ -134,7 +134,7 @@ Esto brinda varios usos interesantes comparados al "OR puro, clásico, de solo b

En la primera línea, el operador OR `||` detiene la evaluación inmediatamente después de ver que es verdadera, por lo que la alerta no se ejecuta.

A veces se usa esta función para ejecutar comandos solo si la condición en la parte izquierda esfalsa.
A veces se usa esta función para ejecutar comandos solo si la condición en la parte izquierda esfalsy.

## && (AND)

Expand DownExpand Up@@ -168,11 +168,11 @@ Al igual que con OR, cualquier valor es permitido como operando de AND:

```js run
if (1 && 0) { // evaluado como true && false
alert( "no funcionará porque el resultado es un valorfalso" );
alert( "no funcionará porque el resultado es un valorfalsy" );
}
```

## AND "&&" encuentra el primer valorfalso
## AND "&&" encuentra el primer valorfalsy

Dado múltiples valores aplicados al operador AND:

Expand All@@ -184,27 +184,27 @@ El operador AND `&&` realiza lo siguiente:

- Evalúa los operandos de izquierda a derecha.
- Para cada operando, los convierte a un booleano. Si el resultado es `false`, se detiene y retorna el valor original de dicho operando.
- Si todos los operandos han sido evaluados (todos fueron valoresverdaderos), retorna el último operando.
- Si todos los operandos han sido evaluados (todos fueron valorestruthy), retorna el último operando.

En otras palabras, AND retorna el primer valorfalso o el último valor si ninguno fue encontrado.
En otras palabras, AND retorna el primer valorfalsy o el último valor si ninguno fue encontrado.

Las reglas anteriores son similares a las de OR. La diferencia es que AND retorna el primer valor *falso* mientras que OR retorna el primer valor *verdadero*.
Las reglas anteriores son similares a las de OR. La diferencia es que AND retorna el primer valor *falsy* mientras que OR retorna el primer valor *truthy*.

Ejemplo:

```js run
// si el primer operando es un valorverdadero,
// si el primer operando es un valortruthy,
// AND retorna el segundo operando:
alert(1 && 0); // 0
alert(1 && 5); // 5

// si el primer operando es un valorfalso,
// si el primer operando es un valorfalsy,
// AND lo retorna. El segundo operando es ignorado
alert(null && 5); // null
alert(0 && "cualquier valor"); // 0
```

También podemos pasar varios valores de una vez. Observa como el primer valorfalso es retornado:
También podemos pasar varios valores de una vez. Observa como el primer valorfalsy es retornado:

```js run
alert(1 && 2 && null && 3); // null
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp