Repository navigation
Conversation
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
| A coisa importante de se saber sobre todos os métodos de conversão de primitivo é que eles não necessariamente retornam o primitivo "sugerido pelo hint". | ||
|
|
||
| There is no control whether `toString` returns exactly a string, or whether `Symbol.toPrimitive` method returns a number for the hint `"number"`. | ||
| Não há nenhum controle sobre se `toString` retorna exatamente uma string, ou se o método `Symbol.toPrimitive` retorna um número para o hint `"number"`. |
There was a problem hiding this comment.
Tradução ambígua: "There is no control whether" significa que não há verificação/garantia de que o retorno seja do tipo sugerido. "Não há nenhum controle sobre se..." é truncado e pode ser lido como "não podemos controlar". Sugestão: "Não há nenhuma verificação de que toString retorne exatamente uma string, ou de que o método Symbol.toPrimitive retorne um número para o hint \"number\"."
| - try calling `obj.toString()` or `obj.valueOf()`, whatever exists. | ||
| 3. Otherwise if hint is `"number"` or `"default"` | ||
| - try calling `obj.valueOf()` or `obj.toString()`, whatever exists. | ||
| 1. Chama `obj[Symbol.toPrimitive](hint)` -- o método com a chave simbólica `Symbol.toPrimitive` (symbol do sistema), se esse método existir, |
There was a problem hiding this comment.
O original usa um hífen simples (-) e esta linha passou a usar --. Mudança de pontuação fora do escopo da tradução; sugiro manter - como no original (ou usar o mesmo travessão da linha 29, mas de forma deliberada).
| : Ocorre em casos raros, quando o operador "não tem certeza" de qual tipo esperar. | ||
|
|
||
| For instance, binary plus `+` can work both with strings (concatenates them) and numbers (adds them). So if a binary plus gets an object as an argument, it uses the `"default"` hint to convert it. | ||
| Por exemplo, o mais binário `+` pode funcionar tanto com strings (concatenando elas) quanto com números (somando eles). Então, se um mais binário recebe um objeto como argumento, ele usa o hint `"default"` pra convertê-lo. |
There was a problem hiding this comment.
Registro coloquial: "concatenando elas" / "somando eles" usa pronome reto como objeto. No texto didático, prefira "concatenando-as" / "somando-os". Também pra aqui destoa do para usado no resto do artigo.
| O que acontece quando objetos são somados `obj1 + obj2`, subtraídos `obj1 - obj2` ou exibidos usando `alert(obj)`? | ||
|
|
||
| JavaScript doesn't allow you to customize how operators work on objects. Unlike some other programming languages, such as Ruby or C++, we can't implement a special object method to handle addition (or other operators). | ||
| O JavaScript não permite que você personalize como os operadores funcionam em objetos. Diferente de outras linguagens de programação, como Ruby ou C++, não podemos implementar um método especial de objeto pra lidar com a adição (ou outros operadores). |
There was a problem hiding this comment.
Inconsistência de registro: o artigo mistura pra (linhas 6, 14, 72, 92) com para (maioria das ocorrências). Sugiro padronizar em para, como nos demais artigos traduzidos.
| // hint = one of "string", "number", "default" | ||
| // aqui vai o código para converter este objeto para um primitivo | ||
| // ele precisa retornar um valor primitivo | ||
| // hint = um de "string", "number", "default" |
There was a problem hiding this comment.
Calque do inglês "one of": "um de" soa estranho em português. Sugestão: // hint = um entre "string", "number", "default".
| ``` | ||
|
|
||
| So if we try to use an object as a string, like in an `alert` or so, then by default we see `[object Object]`. | ||
| Então, se tentarmos usar um objeto como uma string, tipo num `alert` ou algo assim, então por padrão vemos `[object Object]`. |
There was a problem hiding this comment.
Registro informal ("tipo num alert ou algo assim") destoa do resto do texto. Sugestão: "como num alert ou similar".
| 1. It will allow us to understand what's going on in case of coding mistakes, when such an operation happened accidentally. | ||
| 2. There are exceptions, where such operations are possible and look good. E.g. subtracting or comparing dates (`Date` objects). We'll come across them later. | ||
| 1. Vai nos permitir entender o que está acontecendo em caso de erros de código, quando esse tipo de operação acontece acidentalmente. | ||
| 2. Existem exceções, onde esse tipo de operação é possível e fica legal. Ex.: subtrair ou comparar datas (objetos `Date`). Vamos nos deparar com elas mais tarde. |
There was a problem hiding this comment.
"fica legal" é coloquial demais para "look good". Sugestão: "e fazem sentido" / "e ficam elegantes".
| Essa é uma limitação importante: o resultado de `obj1 + obj2` (ou outra operação matemática) não pode ser outro objeto! | ||
|
|
||
| E.g. we can't make objects representing vectors or matrices (or achievements or whatever), add them and expect a "summed" object as the result. Such architectural feats are automatically "off the board". | ||
| Ex.: não podemos fazer objetos representando vetores ou matrizes (ou conquistas ou qualquer outra coisa), somá-los e esperar um objeto "somado" como resultado. Esses feitos arquiteturais são automaticamente "tirados de cena". |
There was a problem hiding this comment.
"tirados de cena" não transmite bem "off the board" (= fora de cogitação, impossível). Sugestão: "Esses feitos arquiteturais estão automaticamente "fora de cogitação"."
Tradução do artigo "Object to primitive conversion" para o português.
Conforme comentado na #1. Obs.: esse título já havia sido reivindicado por @DesKd em fev/2026, sem PR desde então — estou assumindo a tradução.