Skip to content

Commit 2d2f340

Browse files
committed
merging all conflicts
2 parents 7d1dc8a + 3a0b3f4 commit 2d2f340

File tree

13 files changed

+72
-41
lines changed

13 files changed

+72
-41
lines changed

1-js/01-getting-started/2-manuals-specifications/article.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,33 @@ Uma nova versão dessa especificação é lançada todos os anos. Entre estes la
1313

1414
Para ler sobre as mais novas funcionalidades (*bleeding-edge features*), incluindo as que estão em fase de padronização (chamadas também de "estágio 3"), veja as suas propostas em <https://github.com/tc39/proposals>.
1515

16+
<<<<<<< HEAD
1617
E mais, se você está desenvolvendo para browsers, há outras especificações que cobrem esta demanda na [segunda parte](info:browser-environment) do tutorial.
18+
=======
19+
Also, if you're in developing for the browser, then there are other specifications covered in the [second part](info:browser-environment) of the tutorial.
20+
>>>>>>> 3a0b3f4e31d4c4bbe90ed4c9c6e676a888ad8311
1721
1822
## Manuais
1923

24+
<<<<<<< HEAD
2025
- **MDN (Mozilla) JavaScript Reference** é um manual com exemplos e outras informações. É ótimo para um entendimento sobre funções, métodos da linguagem, etc.
26+
=======
27+
- **MDN (Mozilla) JavaScript Reference** is the main manual with examples and other information. It's great to get in-depth information about individual language functions, methods etc.
28+
>>>>>>> 3a0b3f4e31d4c4bbe90ed4c9c6e676a888ad8311
2129
2230
Pode ser encontrado em <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference>.
2331

32+
<<<<<<< HEAD
2433
Porém, às vezes é melhor fazer uma busca na internet. Apenas use "MDN [termo]" na busca, por exemplo: <https://google.com/search?q=MDN+parseInt> para procurar pela função `parseInt`.
2534

2635
- **MSDN** - Manual da Microsoft com muitas informações, incluindo JavaScript (frequentemente referido como JScript). Se precisar de algo específico para o Internet Explorer, é melhor ir por aqui: <http://msdn.microsoft.com/>.
2736

2837
Assim como para o manual da Mozilla, também podemos fazer uma busca na internet com frases do tipo "RegExp MSDN" ou "RegExp MSDN jscript".
2938

3039
## Tabelas de compatibilidade
40+
=======
41+
Although, it's often best to use an internet search instead. Just use "MDN [term]" in the query, e.g. <https://google.com/search?q=MDN+parseInt> to search for `parseInt` function.
42+
>>>>>>> 3a0b3f4e31d4c4bbe90ed4c9c6e676a888ad8311
3143
3244
JavaScript é uma linguagem em desenvolvimento, novas funcionalidades são adicionadas regularmente.
3345

1-js/03-code-quality/02-coding-style/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,11 @@ Existem dois tipos de indentação:
115115
116116
Uma vantagem dos espaços sobre *tabs*, é que espaços permitem configurações de indentação mais flexíveis do que o símbolo "Tab".
117117
118+
<<<<<<< HEAD
118119
Por exemplo, podemos alinhar os argumentos com o parêntese de abertura, desta forma:
120+
=======
121+
For instance, we can align the parameters with the opening bracket, like this:
122+
>>>>>>> 3a0b3f4e31d4c4bbe90ed4c9c6e676a888ad8311
119123
120124
```js no-beautify
121125
show(parameters,

1-js/03-code-quality/02-coding-style/code-style.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/04-object-basics/03-garbage-collection/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Simply put, "reachable" values are those that are accessible or usable somehow.
1414

1515
For instance:
1616

17-
- Local variables and parameters of the current function.
18-
- Variables and parameters for other functions on the current chain of nested calls.
17+
- The currently executing function, its local variables and parameters.
18+
- Other functions on the current chain of nested calls, their local variables and parameters.
1919
- Global variables.
2020
- (there are some other, internal ones as well)
2121

1-js/04-object-basics/04-object-methods/7-calculator/_js.view/test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ describe("calculator", function() {
1515
afterEach(function() {
1616
prompt.restore();
1717
});
18+
19+
it('the read get two values and saves them as object properties', function () {
20+
assert.equal(calculator.a, 2);
21+
assert.equal(calculator.b, 3);
22+
});
1823

1924
it("the sum is 5", function() {
2025
assert.equal(calculator.sum(), 5);

1-js/04-object-basics/06-constructor-new/2-calculator-constructor/_js.view/test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ describe("calculator", function() {
1010
calculator = new Calculator();
1111
calculator.read();
1212
});
13+
14+
it("the read method asks for two values using prompt and remembers them in object properties", function() {
15+
assert.equal(calculator.a, 2);
16+
assert.equal(calculator.b, 3);
17+
});
1318

1419
it("when 2 and 3 are entered, the sum is 5", function() {
1520
assert.equal(calculator.sum(), 5);

1-js/04-object-basics/06-constructor-new/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ The syntax from this section is rarely used, skip it unless you want to know eve
9191

9292
Inside a function, we can check whether it was called with `new` or without it, using a special `new.target` property.
9393

94-
It is empty for regular calls and equals the function if called with `new`:
94+
It is undefined for regular calls and equals the function if called with `new`:
9595

9696
```js run
9797
function User() {

1-js/04-object-basics/07-optional-chaining/article.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ That's why the optional chaining `?.` was added to the language. To solve this p
7474

7575
## Optional chaining
7676

77-
The optional chaining `?.` stops the evaluation if the part before `?.` is `undefined` or `null` and returns that part.
77+
The optional chaining `?.` stops the evaluation if the value before `?.` is `undefined` or `null` and returns `undefined`.
7878

7979
**Further in this article, for brevity, we'll be saying that something "exists" if it's not `null` and not `undefined`.**
8080

8181
In other words, `value?.prop`:
82-
- is the same as `value.prop` if `value` exists,
82+
- works as `value.prop`, if `value` exists,
8383
- otherwise (when `value` is `undefined/null`) it returns `undefined`.
8484

8585
Here's the safe way to access `user.address.street` using `?.`:
@@ -103,7 +103,7 @@ alert( user?.address.street ); // undefined
103103
104104
Please note: the `?.` syntax makes optional the value before it, but not any further.
105105
106-
E.g. in `user?.address.street.name` the `?.` allows `user` to be `null/undefined`, but it's all it does. Further properties are accessed in a regular way. If we want some of them to be optional, then we'll need to replace more `.` with `?.`.
106+
E.g. in `user?.address.street.name` the `?.` allows `user` to safely be `null/undefined` (and returns `undefined` in that case), but that's only for `user`. Further properties are accessed in a regular way. If we want some of them to be optional, then we'll need to replace more `.` with `?.`.
107107
108108
```warn header="Don't overuse the optional chaining"
109109
We should use `?.` only where it's ok that something doesn't exist.
@@ -173,18 +173,16 @@ Then `?.()` checks the left part: if the admin function exists, then it runs (th
173173
The `?.[]` syntax also works, if we'd like to use brackets `[]` to access properties instead of dot `.`. Similar to previous cases, it allows to safely read a property from an object that may not exist.
174174
175175
```js run
176+
let key = "firstName";
177+
176178
let user1 = {
177179
firstName: "John"
178180
};
179181

180-
let user2 = null; // Imagine, we couldn't authorize the user
181-
182-
let key = "firstName";
182+
let user2 = null;
183183

184184
alert( user1?.[key] ); // John
185185
alert( user2?.[key] ); // undefined
186-
187-
alert( user1?.[key]?.something?.not?.existing); // undefined
188186
```
189187
190188
Also we can use `?.` with `delete`:

1-js/04-object-basics/08-symbol/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ There will be no conflict, because symbols are always different, even if they ha
109109

110110
Now note that if we used a string `"id"` instead of a symbol for the same purpose, then there *would* be a conflict:
111111

112-
```js run
112+
```js
113113
let user = { name: "John" };
114114

115115
// Our script uses "id" property

1-js/05-data-types/02-number/article.md

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,29 @@ Imagine we need to write 1 billion. The obvious way is:
1616
let billion = 1000000000;
1717
```
1818

19-
But in real life, we usually avoid writing a long string of zeroes as it's easy to mistype. Also, we are lazy. We will usually write something like `"1bn"` for a billion or `"7.3bn"` for 7 billion 300 million. The same is true for most large numbers.
19+
We also can use underscore `_` as the separator:
2020

21-
In JavaScript, we shorten a number by appending the letter `"e"` to the number and specifying the zeroes count:
21+
```js
22+
let billion = 1_000_000_000;
23+
```
24+
25+
Here the underscore `_` plays the role of the "syntactic sugar", it makes the number more readable. The JavaScript engine simply ignores `_` between digits, so it's exactly the same one billion as above.
26+
27+
In real life though, we try to avoid writing long sequences of zeroes. We're too lazy for that. We'll try to write something like `"1bn"` for a billion or `"7.3bn"` for 7 billion 300 million. The same is true for most large numbers.
28+
29+
In JavaScript, we can shorten a number by appending the letter `"e"` to it and specifying the zeroes count:
2230

2331
```js run
2432
let billion = 1e9; // 1 billion, literally: 1 and 9 zeroes
2533

26-
alert( 7.3e9 ); // 7.3 billions (7,300,000,000)
34+
alert( 7.3e9 ); // 7.3 billions (same as 7300000000 or 7_300_000_000)
2735
```
2836

29-
In other words, `"e"` multiplies the number by `1` with the given zeroes count.
37+
In other words, `e` multiplies the number by `1` with the given zeroes count.
3038

3139
```js
32-
1e3 = 1 * 1000
33-
1.23e6 = 1.23 * 1000000
40+
1e3 = 1 * 1000 // e3 means *1000
41+
1.23e6 = 1.23 * 1000000 // e6 means *1000000
3442
```
3543

3644
Now let's write something very small. Say, 1 microsecond (one millionth of a second):
@@ -125,7 +133,7 @@ There are several built-in functions for rounding:
125133
: Rounds up: `3.1` becomes `4`, and `-1.1` becomes `-1`.
126134

127135
`Math.round`
128-
: Rounds to the nearest integer: `3.1` becomes `3`, `3.6` becomes `4` and `-1.1` becomes `-1`.
136+
: Rounds to the nearest integer: `3.1` becomes `3`, `3.6` becomes `4`, the middle case: `3.5` rounds up to `4` too.
129137

130138
`Math.trunc` (not supported by Internet Explorer)
131139
: Removes anything after the decimal point without rounding: `3.1` becomes `3`, `-1.1` becomes `-1`.

0 commit comments

Comments
 (0)