Skip to content

Commit 0a7394a

Browse files
committed
Adiciona tradução Capítulo 04 até linha 627
1 parent ce59f7a commit 0a7394a

File tree

1 file changed

+69
-1
lines changed

1 file changed

+69
-1
lines changed

chapters/04-estruturas-de-dados.md

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,4 +558,72 @@ Essa versão lê o primeiro argumento (`squirrel`) da forma normal e depois perc
558558

559559
Como vimos anteriormente, `Math` é uma caixa de ferramentas com funções relacionadas a números, tais como `Math.max` (máximo), `Math.min` (mínimo) e `Math.sqrt` (raiz quadrada).
560560

561-
http://eloquentjavascript.net/04_data.html#p_9S5JZybGFD
561+
O objeto `Math` é usado como um _container_ para agrupar uma série de funcionalidades relacionadas. Existe apenas um único objeto `Math` e, na maioria das vezes, ele não é útil quando usado como valor. Mais precisamente, ele fornece um _namespace_ (espaço nominal) para que todas essas funções e valores não precisem ser declaradas como variáveis globais.
562+
563+
Possuir muitas variáveis globais "polui" o _namespace_. Quanto mais nomes são usados, mais prováveis são as chances de acidentalmente sobrescrever o valor de uma variável. Por exemplo, é provável que você queira chamar algo de `max` em um de seus programas. Sabendo que no JavaScript a função nativa `max` está contida de forma segura dentro do objeto `Math`, não precisamos nos preocupar em sobrescrevê-la.
564+
565+
Muitas linguagens irão parar você ou, ao menos, avisá-lo quando tentar definir uma variável com um nome que já está sendo usado. Como o JavaScript não faz isso, tenha cuidado.
566+
567+
De volta ao objeto `Math`. Caso precise realizar cálculos trigonométricos, `Math` pode ajudá-lo. Ele contém `cos` (coseno), `sin` (seno) e `tan` (tangente), tanto quanto suas funções inversas `aos`, `asin` e `atan` respectivamente. O número π (pi), ou pelo menos a aproximação que é possível ser representada através de um número no JavaScript, está disponível como `Math.PI`. (Existe uma tradição antiga na programação de escrever os nomes de valores constantes em caixa alta).
568+
569+
```js
570+
function randomPointOnCircle(radius) {
571+
var angle = Math.random() * 2 * Math.PI;
572+
return {x: radius * Math.cos(angle),
573+
y: radius * Math.sin(angle)};
574+
}
575+
console.log(randomPointOnCircle(2));
576+
// → {x: 0.3667, y: 1.966}
577+
```
578+
579+
Se senos e cosenos não são algo que seja muito familiar para você, não se preocupe. Quando eles forem usados no [Capítulo 13](./13-document-object-model.md) desse livro, eu lhe explicarei.
580+
581+
O exemplo anterior usa `Math.random`. Essa é uma função que retorna um número "pseudo-aleatório" entre zero (incluído) e um (excluído) toda vez que você a chama.
582+
583+
```js
584+
console.log(Math.random());
585+
// → 0.36993729369714856
586+
console.log(Math.random());
587+
// → 0.727367032552138
588+
console.log(Math.random());
589+
// → 0.40180766698904335
590+
```
591+
592+
Embora os computadores sejam deterministas (sempre reagem da mesma maneira quando são usados os mesmos dados de entrada), é possível fazer com que produzam números que pareçam ser aleatórios. Para fazer isso, a máquina mantém um número (ou uma variedade deles) armazenado em seu estado interno. Toda vez que um número aleatório é requisitado, ela executa algumas complicadas computações deterministas nesse estado interno e então retorna parte do resultado dessas computações. A máquina também utiliza os resultados para mudar o seu próprio estado interno, fazendo com que seja produzido um próximo número “aleatório” diferente.
593+
594+
Se quisermos um número aleatório inteiro, ao invés de um número fracionário, podemos usar `Math.floor` (que arredonda o número para o menor valor inteiro mais próximo) no resultado de `Math.random`.
595+
596+
```js
597+
console.log(Math.floor(Math.random() * 10));
598+
// → 2
599+
```
600+
601+
Multiplicar o número aleatório por dez resulta em um número que seja maior ou igual a zero e menor do que dez. Devido ao fato de que `Math.floor` arredonda o valor para baixo, essa expressão irá produzir, com chances iguais, qualquer número de zero a nove.
602+
603+
Também existem as funções `Math.ceil` (para arredondar o valor para o maior número inteiro mais próximo) e `Math.round` (para arredondar o valor para o número inteiro mais próximo).
604+
605+
## O objeto global
606+
607+
O escopo global (o espaço no qual as variáveis globais residem), também pode ser abordado como um objeto no JavaScript. Cada variável global é representada como uma propriedade desse objeto. Nos navegadores, o objeto do escopo global é armazenado na variável `window`.
608+
609+
```js
610+
var myVar = 10;
611+
console.log("myVar" in window);
612+
// → true
613+
console.log(window.myVar);
614+
// → 10
615+
```
616+
617+
## Resumo
618+
619+
Objetos e arrays (que são tipos específicos de objeto) fornecem maneiras de agrupar uma conjunto de valores em um único valor. Conceitualmente, ao invés de tentar carregar e manter todas as coisas individualmente em nossos braços, eles nos permitem colocar todas as coisas relacionadas dentro de uma bolsa e carregá-las.
620+
621+
Com excessão de `null` e `undefined`, a maioria dos valores no JavaScript possuem propriedades e são acessadas usando `value.propName` ou `value["propName"]`. Objetos tendem a usar nomes para suas propriedades e armazenam mais o menos uma quantidade fixa delas. Por outro lado, os Arrays normalmente contêm quantidades variáveis de valores conceitualmente iguais e usam números (iniciando do zero) como os nomes de suas propriedades.
622+
623+
Existem algumas propriedades nos arrays, como `length` e uma série de métodos. Métodos são funções que são armazenadas em propriedades e, normalmente, atuam no valor nas quais elas são propriedade.
624+
625+
Objetos podem também ser usados como mapas, associando valores com seus nomes. O operador `in` pode ser usado para verificar se um objeto contém a propriedade com o nome informado. A mesma palavra-chave pode ser usada em um loop `for` (`for (var name in object)`) para percorrer todas as propriedades do objeto.
626+
627+
### Exercícios
628+
629+
http://eloquentjavascript.net/04_data.html#h_TcUD2vzyMe

0 commit comments

Comments
 (0)