Skip to content

Commit 9acabe4

Browse files
committed
Resolve conflicts/Updates after #178 (1/02-15,17)
1 parent f137e50 commit 9acabe4

File tree

2 files changed

+20
-111
lines changed

2 files changed

+20
-111
lines changed

1-js/02-first-steps/15-function-basics/article.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ showMessage();
105105
alert( userName ); // *!*Bob*/!*, the value was modified by the function
106106
```
107107

108-
The outer variable is only used if there's no local one. So an occasional modification may happen if we forget `let`.
108+
The outer variable is only used if there's no local one.
109109

110110
If a same-named variable is declared inside the function then it *shadows* the outer one. For instance, in the code below the function uses the local `userName`. The outer one is ignored:
111111

@@ -185,7 +185,7 @@ For instance, the aforementioned function `showMessage(from, text)` can be calle
185185
showMessage("Ann");
186186
```
187187
188-
That's not an error. Such a call would output `"*Ann*: undefined"`. There's no `text`, so it's assumed that `text === undefined`.
188+
That's not an error. Such a call would output `"Ann: undefined"`. There's no `text`, so it's assumed that `text === undefined`.
189189
190190
If we want to use a "default" `text` in this case, then we can specify it after `=`:
191191
@@ -350,8 +350,8 @@ That doesn't work, because JavaScript assumes a semicolon after `return`. That'l
350350
return*!*;*/!*
351351
(some + long + expression + or + whatever * f(a) + f(b))
352352
```
353+
353354
So, it effectively becomes an empty return.
354-
````
355355
356356
If we want the returned expression to wrap across multiple lines, we should start it at the same line as `return`. Or at least put the opening parentheses there as follows:
357357
@@ -403,7 +403,7 @@ A few examples of breaking this rule:
403403
- `createForm` -- would be bad if it modifies the document, adding a form to it (should only create it and return).
404404
- `checkPermission` -- would be bad if it displays the `access granted/denied` message (should only perform the check and return the result).
405405

406-
These examples assume common meanings of prefixes. What they mean for you is determined by you and your team. Maybe it's pretty normal for your code to behave differently. But you should have a firm understanding of what a prefix means, what a prefixed function can and cannot do. All same-prefixed functions should obey the rules. And the team should share the knowledge.
406+
These examples assume common meanings of prefixes. You and your team are free to agree on other meanings, but usually they're not much different. In any case, you should have a firm understanding of what a prefix means, what a prefixed function can and cannot do. All same-prefixed functions should obey the rules. And the team should share the knowledge.
407407
```
408408

409409
```smart header="Ultrashort function names"
Lines changed: 16 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,29 @@
1-
<<<<<<< HEAD
21
# Funções seta, o básico
32

4-
Existe outra sintaxe, muito simples e concisa, para criar funções, e que frequentemente é melhor do que Expressões de Funções.
3+
Existe outra sintaxe, muito simples e concisa, para criar funções, e que geralmente é melhor do que Expressões de Função.
54

6-
É chamada de "funções seta" (*"arrow functions"*), porque se assemelha a:
7-
=======
8-
# Arrow functions, the basics
9-
10-
There's another very simple and concise syntax for creating functions, that's often better than Function Expressions.
11-
12-
It's called "arrow functions", because it looks like this:
13-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
5+
É chamada de "funções seta" (*"arrow functions"*), porque tem este aspeto:
146

157
```js
168
let func = (arg1, arg2, ...argN) => expression
179
```
1810

19-
<<<<<<< HEAD
20-
...Isto, cria a função `func` com os argumentos `arg1..argN`, depois avalia a `expression` no lado direito utilizando os mesmos, e retorna o seu resultado.
11+
...Isto, cria a função `func` com os argumentos `arg1..argN`, depois avalia a `expression` no lado direito usando os mesmos, e retorna o seu resultado.
2112

2213
Por outras palavras, é a versão mais curta de:
23-
=======
24-
...This creates a function `func` that accepts arguments `arg1..argN`, then evaluates the `expression` on the right side with their use and returns its result.
25-
26-
In other words, it's the shorter version of:
27-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
2814

2915
```js
3016
let func = function(arg1, arg2, ...argN) {
3117
return expression;
3218
};
3319
```
3420

35-
<<<<<<< HEAD
3621
Vejamos um exemplo concreto:
37-
=======
38-
Let's see a concrete example:
39-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
4022

4123
```js run
4224
let sum = (a, b) => a + b;
4325

44-
<<<<<<< HEAD
4526
/* Esta função seta é uma forma mais curta de:
46-
=======
47-
/* This arrow function is a shorter form of:
48-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
4927
5028
let sum = function(a, b) {
5129
return a + b;
@@ -55,49 +33,29 @@ let sum = function(a, b) {
5533
alert( sum(1, 2) ); // 3
5634
```
5735

58-
<<<<<<< HEAD
5936
Como pode ver, `(a, b) => a + b` significa uma função que aceita dois argumentos, nomeadamente `a` e `b`. No momento da execução, esta avalia a expressão `a + b` e retorna o resultado.
6037

61-
- Se tivermos apenas um argumento, então os parênteses à sua volta podem ser omitidos, tornando-a ainda mais curta.
62-
63-
Por examplo:
64-
=======
65-
As you can, see `(a, b) => a + b` means a function that accepts two arguments named `a` and `b`. Upon the execution, it evaluates the expression `a + b` and returns the result.
38+
- Se tivermos apenas um argumento, então os parênteses à sua volta podem ser omitidos, tornando ela ainda mais curta.
6639

67-
- If we have only one argument, then parentheses around parameters can be omitted, making that even shorter.
68-
69-
For example:
70-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
40+
Por exemplo:
7141

7242
```js run
7343
*!*
7444
let double = n => n * 2;
75-
<<<<<<< HEAD
7645
// aproximadamente o mesmo que: let double = function(n) { return n * 2 }
77-
=======
78-
// roughly the same as: let double = function(n) { return n * 2 }
79-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
8046
*/!*
8147

8248
alert( double(3) ); // 6
8349
```
8450

85-
<<<<<<< HEAD
86-
- Se não houver argumentos, os parênteses estarão vazios (mas devem estar presentes):
51+
- Se não houver argumentos, os parênteses irão estar vazios (mas devem estar presentes):
8752

8853
```js run
8954
let sayHi = () => alert("Olá!");
90-
=======
91-
- If there are no arguments, parentheses will be empty (but they should be present):
92-
93-
```js run
94-
let sayHi = () => alert("Hello!");
95-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
9655
9756
sayHi();
9857
```
9958

100-
<<<<<<< HEAD
10159
Funções seta podem ser empregues da mesma forma que Expressões de Função.
10260

10361
Por exemplo, para criar dinamicamente uma função:
@@ -108,32 +66,19 @@ let age = prompt("Que idade tem?", 18);
10866
let welcome = (age < 18) ?
10967
() => alert('Olá') :
11068
() => alert("Saudações!");
111-
=======
112-
Arrow functions can be used in the same way as Function Expressions.
113-
114-
For instance, to dynamically create a function:
115-
116-
```js run
117-
let age = prompt("What is your age?", 18);
118-
119-
let welcome = (age < 18) ?
120-
() => alert('Hello') :
121-
() => alert("Greetings!");
122-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
12369
12470
welcome();
12571
```
12672

127-
<<<<<<< HEAD
12873
Funções seta podem parecer não familiares e não muito legíveis a princípio, mas isso rápidamente muda à medida que os olhos se habituam à estrutura.
12974

13075
Elas são muito convenientes para ações simples numa única-linha, quando estamos preguiçosos demais para escrever muitas palavras.
13176

13277
## Funções seta de múltiplas linhas
13378

134-
Os exemplos acima tomaram os argumentos à esqerda de `=>` e avaliaram a expressão à direita com eles.
79+
Os exemplos acima tomaram os argumentos à esquerda de `=>` e avaliaram a expressão à direita com eles.
13580

136-
Por vezes, precisamos de algo um pouco mais complexo, como múltiplas expressões ou instruções. Isso também é possível, mas deveríamos envolvê-las em chavetas. A seguir, usamos um `return` normal com elas.
81+
Por vezes, precisamos de algo um pouco mais complexo, como de múltiplas expressões ou instruções. Isso também é possível, mas devemos colocar elas dentro de chavetas. Depois, usamos um `return` normal com elas.
13782

13883
Desta forma:
13984

@@ -142,61 +87,25 @@ let sum = (a, b) => { // a chaveta abre uma função multi-linha
14287
let result = a + b;
14388
*!*
14489
return result; // se usarmos chavetas, então precisamos de um "return" explícito
145-
=======
146-
Arrow functions may appear unfamiliar and not very readable at first, but that quickly changes as the eyes get used to the structure.
147-
148-
They are very convenient for simple one-line actions, when we're just too lazy to write many words.
149-
150-
## Multiline arrow functions
151-
152-
The examples above took arguments from the left of `=>` and evaluated the right-side expression with them.
153-
154-
Sometimes we need something a little bit more complex, like multiple expressions or statements. It is also possible, but we should enclose them in curly braces. Then use a normal `return` within them.
155-
156-
Like this:
157-
158-
```js run
159-
let sum = (a, b) => { // the curly brace opens a multiline function
160-
let result = a + b;
161-
*!*
162-
return result; // if we use curly braces, then we need an explicit "return"
163-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
16490
*/!*
16591
};
16692
16793
alert( sum(1, 2) ); // 3
16894
```
16995

170-
<<<<<<< HEAD
171-
```smart header="Mais adiante"
172-
Aqui, enaltecemos funções seta pela sua brevidade. Mas não é tudo!
96+
```smart header="Mais à frente"
97+
Aqui, enaltecemos funções seta pela sua brevidade. Mas não é só!
98+
99+
Funções seta têm outras funcionalidades interessantes.
173100
174-
Para as estudar mais detalhadamente, primeiro precisamos de saber alguns outros aspetos de JavaScript, e desta forma retornaremos a funções seta mais adiante no capitulo <info:arrow-functions>.
101+
Para as estudar com mais detalhe, primeiro precisamos de saber alguns outros aspetos de JavaScript, e desta forma vamos retornar a funções seta mais adiante no capitulo <info:arrow-functions>.
175102
176103
Por ora, podemos já usar funções seta para ações numa única-linha e *callbacks*.
177104
```
178105

179106
## Resumo
180107

181-
Funções seta são apropriadas para ações única-linha. Elas vêm em dois sabores:
182-
183-
1. Sem chavetas: `(...args) => expression` -- o lado direito é uma expressão; a função a avalia e retorna o resultado.
184-
2. Com chavetas: `(...args) => { body }` -- chavetas permitem-nos escrever múltiplas instruções dentro da função, mas precisamos de um explícito `return` para retornar alguma coisa.
185-
=======
186-
```smart header="More to come"
187-
Here we praised arrow functions for brevity. But that's not all!
188-
189-
Arrow functions have other interesting features.
190-
191-
To study them in-depth, we first need to get to know some other aspects of JavaScript, so we'll return to arrow functions later in the chapter <info:arrow-functions>.
192-
193-
For now, we can already use arrow functions for one-line actions and callbacks.
194-
```
195-
196-
## Summary
197-
198-
Arrow functions are handy for one-liners. They come in two flavors:
108+
Funções seta são práticas para ações numa única-linha. Elas vêm em dois sabores:
199109

200-
1. Without curly braces: `(...args) => expression` -- the right side is an expression: the function evaluates it and returns the result.
201-
2. With curly braces: `(...args) => { body }` -- brackets allow us to write multiple statements inside the function, but we need an explicit `return` to return something.
202-
>>>>>>> e074a5f825a3d10b0c1e5e82561162f75516d7e3
110+
1. Sem chavetas: `(...args) => expression` -- o lado direito é uma expressão: a função a avalia e retorna o resultado.
111+
2. Com chavetas: `(...args) => { body }` -- chavetas nos permitem escrever múltiplas instruções dentro da função, mas precisamos de um explícito `return` para retornar alguma coisa.

0 commit comments

Comments
 (0)