@@ -359,7 +359,7 @@ posición. El ejemplo anterior produce "_la mitad de 100 es 50_".
359359
360360No todo los operadores son simbolos. Algunos se escriben como palabras.
361361Un ejemplo es el operador ` typeof ` , que produce un string con el nombre
362- del tipo de valor que le mandemos .
362+ del tipo de valor que le demos .
363363
364364```
365365console.log(typeof 4.5)
@@ -373,16 +373,16 @@ console.log(typeof "x")
373373{{id "console.log"}}
374374
375375Usaremos ` console.log ` en los ejemplos de código para indicar que
376- lo que queremos es ver es el resultado de alguna evaluación.
377- Expandiremos en esto en el [ proximo capitulo] ( program_structure ) .
376+ que queremos ver el resultado de alguna evaluación.
377+ Mas acerca de esto esto en el [ proximo capitulo] ( estructura_de_programa ) .
378378
379379{{index negation, "- operator", "binary operator", "unary operator"}}
380380
381- Los operadores que hemos visto hasta ahora todos operaban en does valores,
381+ En los otros operadores que hemos visto hasta ahora, todos operaban en dos valores,
382382pero ` typeof ` sola opera con un valor. Los operadores que usan dos valores
383- son llamados _ binarios_ , mientras que aquellos operadores que usan uno son
384- llamados _ unarios_ . El operador menos puede ser usado como operador binario
385- o como operador unario.
383+ son llamados operadores _ binarios_ , mientras que aquellos operadores que usan uno son
384+ llamados operadores _ unarios_ . El operador menos puede ser usado tanto
385+ como un operador binario o como un operador unario.
386386
387387```
388388console.log(- (10 - 2))
@@ -393,9 +393,9 @@ console.log(- (10 - 2))
393393
394394{{index Boolean, operator, true, false, bit}}
395395
396- Es frecuentemente util tener un valor que se distingue entre solo dos
396+ Es frecuentemente util tener un valor que distingue entre solo dos
397397posibilidades, como "si", y "no", o "encendido" y "apagado". Para este
398- propósito, JavaScript tiene el tipo _ Boolean_ , que tiene dos valores:
398+ propósito, JavaScript tiene el tipo _ Boolean_ , que tiene solo dos valores:
399399verdadero (` true ` ) y falso (` false ` ) que se escriben de la misma forma.
400400
401401### Compraración
@@ -429,18 +429,18 @@ console.log("Aardvark" < "Zoroaster")
429429
430430La forma en la que los strings son ordenados, es aproximadamente alfabético,
431431aunque no realmente de la misma forma que esperaríamos ver en un diccionario:
432- letras mayúsculas son siempre "menores que" letras minúsculas, así que ` "Z" < "a" ` ,
433- y caracteres no alfabéticos como ` ! ` , ` - ` , y demás, son también incluidos en el
432+ las letras mayúsculas son siempre "menores que" las letras minúsculas, así que ` "Z" < "a" ` ,
433+ y caracteres no alfabéticos ( como ` ! ` , ` - ` y demás) son también incluidos en el
434434ordenamiento. Cuando comparamos strings, JavaScript evalúa los caracteres
435435de izquierda a derecha, comparando los códigos ((Unicode)) uno por uno.
436436
437437{{index equality, ">= operator", "<= operator", "== operator", "!= operator"}}
438438
439- Otros operadores similares son ` >= ` (mayor o igual que), ` <= ` (menor y igual que),
439+ Otros operadores similares son ` >= ` (mayor o igual que), ` <= ` (menor o igual que),
440440` == ` (igual a), y ` != ` (no igual a).
441441
442442```
443- console.log("Irritante " != "Arañoso ")
443+ console.log("Itchy " != "Scratchy ")
444444// → true
445445console.log("Manzana" == "Naranja")
446446// → false
@@ -449,16 +449,14 @@ console.log("Manzana" == "Naranja")
449449{{index [ comparison, "of NaN"] , NaN}}
450450
451451Solo hay un valor en JavaScript que no es igual a si mismo, y este es
452- ` NaN ` ("no es numero").
453- There is only one value in JavaScript that is not equal to itself, and
454- that is ` NaN ` ("not a number").
452+ ` NaN ` ("no es un numero").
455453
456454```
457455console.log(NaN == NaN)
458456// → false
459457```
460458
461- ` NaN ` esta supuesto a denotar el resultado de una computación sin sentido,
459+ Se supone que ` NaN ` denota el resultado de una computación sin sentido,
462460y como tal, no es igual al resultado de ninguna _ otra_ computación sin sentido.
463461
464462### Operadores lógicos
@@ -467,7 +465,7 @@ y como tal, no es igual al resultado de ninguna _otra_ computación sin sentido.
467465
468466También existen algunas operaciones que pueden ser aplicadas a valores
469467Boolean. JavaScript soporta tres operadores lógicos: _ and_ , _ or_ , y _ not_ .
470- Estos pueden ser usados para "razonar" valores Boolean.
468+ Estos pueden ser usados para "razonar" acerca de valores Boolean.
471469
472470{{index "&& operator", "logical and"}}
473471
@@ -497,19 +495,19 @@ console.log(false || false)
497495{{index negation, "! operator"}}
498496
499497_ Not_ se escribe como un signo de exclamación (` ! ` ). Es un operador
500- unario que voltea el valor dado- ` !true ` produce ` false ` y ` !false `
498+ unario que voltea el valor dado— ` !true ` produce ` false ` y ` !false `
501499produce ` true ` .
502500
503501{{index precedence}}
504502
505- Cuando estos operadores Boolean son mezclados con otro tipo de
506- operadores, no es siempre obvio cuando son necesarios los paréntesis.
507- En la práctica, puedes usualmente manejarte bien sabiendo que de
508- los operadores que hemos visto hasta ahora, ` || ` tiene menor precedencia,
503+ Cuando estos operadores Boolean son mezclados con otros tipos de
504+ operadores, no siempre es obvio cuando son necesarios los paréntesis.
505+ En la práctica, usualmente puedes manejarte bien sabiendo que de
506+ los operadores que hemos visto hasta ahora, ` || ` tiene la menor precedencia,
509507luego le sigue ` && ` , luego le siguen los operadores de comparación
510508(` > ` , ` == ` , y demás), y luego el resto. Este orden ha sido determinado para
511- que en expresiones como la siguiente, la menos cantidad de paréntesis es
512- requerida :
509+ que en expresiones como la siguiente, la menor cantidad de paréntesis posible sea
510+ necesaria :
513511
514512```
5155131 + 1 == 2 && 10 * 10 > 50
@@ -518,7 +516,7 @@ requerida:
518516{{index "conditional execution", "ternary operator", "?: operator", "conditional operator", "colon character", "question mark"}}
519517
520518El ultimo operador lógico que discutiremos no es unario, tampoco binario,
521- pero ternario , esto es, que opera en tres valores. Es escrito con un
519+ sino _ ternario _ , esto es, que opera en tres valores. Es escrito con un
522520signo de interrogación y dos puntos, de esta forma:
523521
524522```
@@ -538,15 +536,15 @@ falso, el valor de la derecha.
538536
539537{{index undefined, null}}
540538
541- Existen dos valores especiales, escritos ` null ` y ` undefined ` , que son
542- usados para denotar la ausencia de un valor _ significativo_ . Son en si mismo
539+ Existen dos valores especiales, escritos como ` null ` y ` undefined ` , que son
540+ usados para denotar la ausencia de un valor _ significativo_ . Son en si mismos
543541valores, pero no traen consigo información.
544542
545- Muchos de los operadores en el lenguaje que no producen un valor significativo
546- (veremos algunos mas adelante), producen ` undefined ` simplemente porque tienen
543+ Muchas operaciones en el lenguaje que no producen un valor significativo
544+ (veremos algunas mas adelante), producen ` undefined ` simplemente porque tienen
547545que producir _ algún_ valor.
548546
549- La diferencia en significado entre ` undefined ` y ` null ` es un accidente del
547+ La diferencia en significado entre ` undefined ` y ` null ` es un accidente del
550548diseño de JavaScript, y realmente no importa la mayor parte del tiempo.
551549En los casos donde realmente tendríamos que preocuparnos por estos valores,
552550mayormente recomiendo tratarlos como intercambiables.
@@ -555,9 +553,9 @@ mayormente recomiendo tratarlos como intercambiables.
555553
556554{{index NaN, "type coercion"}}
557555
558- En la introducción, he mencionado que JavaScript trata mucho de aceptar
559- casi cualquier programa que le demos, aún programas que hacen cosas
560- extrañas. Esto es bien demostrado por la proxima expresión :
556+ En la Introducción, mencione que JavaScript tiende a salirse de su camino para
557+ aceptar casi cualquier programa que le demos, incluso programas que hacen cosas
558+ extrañas. Esto es bien demostrado por las siguientes expresiones :
561559
562560```
563561console.log(8 * null)
@@ -574,19 +572,18 @@ console.log(false == 0)
574572
575573{{index "+ operator", arithmetic, "* operator", "- operator"}}
576574
577- Cuando un operador es aplicado el tipo de valor "incorrecto", JvasScript
575+ Cuando un operador es aplicado el tipo de valor "incorrecto", JavaScript
578576calladamente convertirá ese valor al tipo que necesita, utilizando una
579- seria de reglas que frecuentemente no dan el resultado que quisieras
577+ serie de reglas que frecuentemente no dan el resultado que quisieras
580578o esperarías. Esto es llamado _ ((coercion de tipo))_ . El ` null `
581579en la primera expresión se torna ` 0 ` , y el ` "5" ` en la segunda expresión
582580se torna ` 5 ` (de string a numero). Sin embargo, en la tercera expresión,
583- ` + ` trata concatenación de string antes de adición numérica, entonces
584- el ` 1 ` es convertido a ` "1" ` (de numero a string)
581+ ` + ` intenta realizar una concatenación de string antes que una adición numérica,
582+ entonces el ` 1 ` es convertido a ` "1" ` (de numero a string)
585583
586584{{index "type coercion", [ number, "conversion to"] }}
587585
588-
589- Cuando algo que no se traduce a un numero de manera obvia (tal como
586+ Cuando algo que no se traduce a un numero en una manera obvia (tal como
590587` "cinco" ` o ` undefined ` ) es convertido a un numero, obtenemos el valor
591588` NaN ` . Operaciones aritméticas subsecuentes con ` NaN ` , continúan
592589produciendo ` NaN ` , asi que si te encuentras obteniendo uno de estos en
@@ -598,7 +595,7 @@ Cuando se utiliza `==` para comparar valores del mismo tipo, el desenlace
598595es fácil de predecir: debemos de obtener verdadero cuando ambos valores
599596son lo mismo, excepto en el caso de ` NaN ` . Pero cuando los tipos difieren,
600597JavaScript utiliza una serie de reglas complicadas y confusas para determinar
601- que hacer. En el mayor de los casos, solo trata de convertir uno de estos valores
598+ que hacer. En la mayoria de los casos, solo tratara de convertir uno de estos valores
602599al tipo del otro valor. Sin embargo, cuando ` null ` o ` undefined ` ocurren en
603600cualquiera de los extremos del operador, produce verdadero solo si el otro lado
604601es o ` null ` o ` undefined ` .
@@ -616,7 +613,7 @@ compararlos con `null` usando el operador `==` (o `!=`).
616613
617614{{index "type coercion", [ Boolean, "conversion to"] , "=== operator", "!== operator", comparison}}
618615
619- Pero que pasa si queremos probar algo que se refiere precisamente
616+ Pero que pasa si queremos probar que algo se refiere precisamente
620617al valor ` false ` ? Las reglas para convertir strings y números a valores
621618Boolean, dice que ` 0 ` , ` NaN ` , y el string vació (` "" ` ) cuentan como ` false ` ,
622619mientras que todos los otros valores cuentan como ` true ` . Debido a esto,
@@ -636,7 +633,7 @@ utilizar los operadores cortos.
636633{{index "type coercion", [ Boolean, "conversion to"] , operator}}
637634
638635Los operadores lógicos ` && ` y ` || ` , manejan valores de diferentes tipos
639- de una forma peculiar. No convertirán el valor en su lado izquierdo a un
636+ de una forma peculiar. Ellos convertirán el valor en su lado izquierdo a un
640637tipo Boolean para decidir que hacer, pero dependiendo del operador y el
641638resultado de la conversión, devolverán o el valor _ original_ de la izquierda
642639o el valor de la derecha.
@@ -671,8 +668,8 @@ ese valor, y de lo contrario, devuelve el valor a su derecha.
671668
672669Otra propiedad importante de estos dos operadores es que la parte
673670de su derecha solo es evaluada si es necesario. En el caso de
674- de ` true || X ` , no importa que sea ` X ` , aun si es un programa
675- que hace algo _ terrible_ - el resultado será verdadero, y ` X ` nunca
671+ de ` true || X ` , no importa que sea ` X ` — aun si es una pieza del programa
672+ que hace algo _ terrible_ — el resultado será verdadero, y ` X ` nunca
676673es evaluado. Lo mismo sucede con ` false && X ` , que es falso e ignorará
677674` X ` . Esto es llamado _ ((evaluación de corto circuito))_ .
678675
@@ -684,17 +681,18 @@ tercer valor, solo el que es seleccionado es evaluado.
684681## Resumen
685682
686683Observamos cuatro tipos de valores JavaScript en este capítulo: números,
687- textos (` strings ` ), Booleans, y valores indefinidos ( ` undefined ` )
684+ textos (` strings ` ), Booleans, y valores indefinidos.
688685
689686Tales valores son creados escribiendo su nombre (` true ` , ` null ` )
690687o valor (` 13 ` , ` "abc" ` ). Puedes combinar y transformar valores con
691688operadores. Vimos operadores binarios para aritmética (` + ` , ` - ` , ` * ` , ` / ` ,
692- y ` % ` ), y lógica (` && ` , ` || ` ), así también como varios otros operadores
693- unarios (` - ` para negar un numero, ` ! ` para negar lógica, y ` typeof `
694- para encontrar el valor de un tipo) y un operador ternario (` ?: ` ) para
695- elegir uno de dos valores basándose en un tercer valor.
689+ y ` % ` ), concatenación de strings (` + ` ), comparaciones (` == ` , ` != ` , ` === ` ,
690+ ` !== ` , ` < ` , ` > ` , ` <= ` , ` >= ` ), y lógica (` && ` , ` || ` ), así también como
691+ varios otros operadores unarios (` - ` para negar un numero, ` ! ` para negar
692+ lógicamente, y ` typeof ` para encontrar el valor de un tipo) y un operador
693+ ternario (` ?: ` ) para elegir uno de dos valores basándose en un tercer valor.
696694
697695Esto te dá la información suficiente para usar JavaScript como una
698696calculadora de bolsillo, pero no para mucho más. El [ próximo
699- capitulo] ( estructura_de_programa ) empezará amarrando estas expresiones
700- juntas para formar programas básicos.
697+ capitulo] ( estructura_de_programa ) empezará a juntar estas expresiones
698+ para formar programas básicos.
0 commit comments