You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/05-types/article.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,13 +46,15 @@ Além dos números regulares, existem os chamados "valores numéricos especiais"
46
46
alert( "not a number" / 2 ); // NaN, tal divisão é errônea
47
47
```
48
48
49
-
`NaN` é pegajoso. Qualquer outra operação em`NaN` retorna `NaN`:
49
+
`NaN` é pegajoso. Qualquer outra operação matemática com`NaN` retorna `NaN`:
50
50
51
51
```js run
52
-
alert( "not a number" / 2 + 5 ); // NaN
52
+
alert( NaN + 1 ); // NaN
53
+
alert( 3 * NaN ); // NaN
54
+
alert( "not a number" / 2 - 1 ); // NaN
53
55
```
54
56
55
-
Então, se há um `NaN` em algum lugar em uma expressão matemática, ele se propaga para o resultado inteiro.
57
+
Então, se há um `NaN` em algum lugar em uma expressão matemática, ele se propaga para o resultado inteiro (existe apenas uma exceção nisto:`NaN ** 0` é `1`).
56
58
57
59
```smart header="As operações matemáticas são seguras"
58
60
Fazer matemática é "seguro" em JavaScript. Podemos fazer qualquer coisa: dividir por zero, tratar strings não-numéricas como números, etc.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/12-nullish-coalescing-operator/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,7 +106,7 @@ In practice, the zero height is often a valid value, that shouldn't be replaced
106
106
107
107
## Precedence
108
108
109
-
The precedence of the `??` operator is about the same as `||`, just a bit lower. It equals `5` in the [MDN table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table), while `||` is `6`.
109
+
The precedence of the `??` operator is the same as `||`. They both equal `4` in the [MDN table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table).
110
110
111
111
That means that, just like `||`, the nullish coalescing operator `??` is evaluated before `=` and `?`, but after most other operations, such as `+`, `*`.
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/07-optional-chaining/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ That's the expected result. JavaScript works like this. As `user.address` is `un
25
25
26
26
In many practical cases we'd prefer to get `undefined` instead of an error here (meaning "no street").
27
27
28
-
...And another example. In the web development, we can get an object that corresponds to a web page element using a special method call, such as `document.querySelector('.elem')`, and it returns `null` when there's no such element.
28
+
...and another example. In Web development, we can get an object that corresponds to a web page element using a special method call, such as `document.querySelector('.elem')`, and it returns `null` when there's no such element.
29
29
30
30
```js run
31
31
// document.querySelector('.elem') is null if there's no element
Copy file name to clipboardExpand all lines: 1-js/05-data-types/10-destructuring-assignment/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ The two most used data structures in JavaScript are `Object` and `Array`.
5
5
- Objects allow us to create a single entity that stores data items by key.
6
6
- Arrays allow us to gather data items into an ordered list.
7
7
8
-
Although, when we pass those to a function, it may need not an object/array as a whole. It may need individual pieces.
8
+
Although, when we pass those to a function, it may need not be an object/array as a whole. It may need individual pieces.
9
9
10
10
*Destructuring assignment* is a special syntax that allows us to "unpack" arrays or objects into a bunch of variables, as sometimes that's more convenient.
3. We load `3.js`, then if there's no error -- do something else `(*)`.
234
234
235
235
As calls become more nested, the code becomes deeper and increasingly more difficult to manage, especially if we have real code instead of `...` that may include more loops, conditional statements and so on.
@@ -298,7 +298,7 @@ function step3(error, script) {
298
298
}
299
299
```
300
300
301
-
See? It does the same, and there's no deep nesting now because we made every action a separate top-level function.
301
+
See? It does the same thing, and there's no deep nesting now because we made every action a separate top-level function.
302
302
303
303
It works, but the code looks like a torn apart spreadsheet. It's difficult to read, and you probably noticed that one needs to eye-jump between pieces while reading it. That's inconvenient, especially if the reader is not familiar with the code and doesn't know where to eye-jump.
Copy file name to clipboardExpand all lines: 1-js/11-async/03-promise-chaining/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,7 +120,7 @@ new Promise(function(resolve, reject) {
120
120
});
121
121
```
122
122
123
-
Aqui o primeiro `.then` exibe `1` e retorna `new Promise(…)` na linha `(*)`. Após 1 segundo ele é resolvido, e o resultado (o argumento de `resolve`, no caso é `result * 2`) é passado ao tratador do segundo `.then`. O tratador está na linha `(**)`, ele exibe `2` e faz a mesma coisa.
123
+
Aqui o primeiro `.then` exibe `1` e retorna `new Promise(…)` na linha `(*)`. Após 1 segundo ela é resolvida, e o resultado (o argumento de `resolve`, aqui é `result * 2`) é passado ao tratador do segundo `.then`. O tratador está na linha `(**)`, ele exibe `2` e faz a mesma coisa.
124
124
125
125
Então a saída é a mesma que no exemplo anterior: 1 -> 2 -> 4, mas agora com 1 segundo de atraso entre as chamadas `alert`.
0 commit comments