Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1e13fb2

Browse files
Estudo de parâmetros e escopos de funções
1 parent 1f84cb0 commit 1e13fb2

File tree

1 file changed

+81
-13
lines changed

1 file changed

+81
-13
lines changed

‎Funções/funcoes.md‎

Lines changed: 81 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,17 @@
1111
<br>
1212

1313
# FUNÇÕES
14+
1415
- [O que são funções?](#o-que-são-funções)
1516
- [Definindo uma função](#definindo-uma-função)
1617

17-
Funções são blocos fundamentais; Funções é um conjunto de instrução que executa um processamento e executa um conjunto de instruções. Podemos, por exemplo, criarmos uma função que calcula a média de uma turma e nos retorna um resultado.
18+
Funções são blocos fundamentais; Funções é um conjunto de instrução que executa um processamento e executa um conjunto de instruções. Podemos, por exemplo, criarmos uma função que calcula a média de uma turma e nos retorna um resultado.
1819

1920
<br>
2021
<br>
2122

2223
# O QUE SÃO FUNÇÕES?
24+
2325
Uma função é um pedaço de programa envolvido por um valor que pode ser aplicado para executar alguma funcionalidade. O `alert`, por exemplo, é uma função nativa do JavaScript que tem como objetivo mostrar uma pequena caixa de diálogo com uma mensagem.
2426

2527
```javascript
@@ -36,31 +38,96 @@ Existem seis tipos básicos de valores no JavaScript: _números, Strings, Boolea
3638
<br>
3739

3840
# DEFININDO UMA FUNÇÃO
41+
3942
Uma função possui a definição similar a de uma variável — a única diferença é o valor que vai ser recebido pela variável é uma função.
4043

41-
~~~javascript
42-
var calcular = function(numero){
43-
return numero + numero;
44-
}
44+
```javascript
45+
var calcular = function(numero){
46+
return numero + numero;
47+
};
4548

4649
console.log(calculo(12));
47-
~~~
50+
```
4851

4952
No exemplo anterior, declaramos a variável `calcular` e atribuímos o valor dessa variável o bloco da função — essa função possui o `return`, que retorna o valor do processamento. No caso do exemplo, o processamento foi o `numero` + `numero` como está escrito dentro do bloco da função. Abaixo, chamamos a função com o `console.log(calculo(12))`. O valor `12` é o valor do número que foi declarado na chamada da função e o cálculo será efetuado com esse valor.
5053

51-
É importante ressaltar que nem todas as funções retornam um valor, como demonstrado no exemplo acima.
54+
É importante ressaltar que nem todas as funções retornam um valor, como demonstrado no exemplo acima.
5255

53-
~~~javascript
54-
var fazerBarulho = function(){
55-
console.log("AAAAAAAAAAAAAA");
56-
}
56+
```javascript
57+
var fazerBarulho = function () {
58+
console.log("AAAAAAAAAAAAAA");
59+
};
5760
fazerBarulho();
58-
~~~
61+
```
5962

60-
No exemplo anterior, temos o exemplo de uma função que não retorna um valor. Essa função `fazerBarulho` é chamada e o único processamento que ela faz é o `console.log("AAAAAAAAAAAAAA")`.
63+
No exemplo anterior, temos o exemplo de uma função que não retorna um valor. Essa função `fazerBarulho` é chamada e o único processamento que ela faz é o `console.log("AAAAAAAAAAAAAA")`.
6164

6265
Todo os processamento em funções são determinado entre chaves `{}`.
6366

67+
<br>
68+
<br>
69+
70+
# PARÂMETROS E ESCOPO
71+
72+
Toda variável tem um escopo, podendo ser local ou global. Parâmetros ou declarações criadas em uma função estão no escopo local. Sempre que uma função for chamada, uma nova instância do escopo local é criado; parâmetros declarados com `let` e `const` são declarações locais. Variáveis `let` e `const` declaradas dentro de escopos locais de funções não são visíveis fora do seu escopo.
73+
74+
```JavaScript
75+
let x = 21;
76+
if(1 + 1 === 2){
77+
let y = 12;
78+
var z = 10;
79+
console.log(x + y + z);
80+
// -> 33
81+
}
82+
// a variável y não é visível aqui
83+
console.log(x + z);
84+
// -> 31
85+
```
86+
87+
No exemplo anterior, vemos que o `console.log` fora da estrutura condicional (`if/else`) retorna o valor 31. Caso declararmos `console.log(x + z + y)`, haveria um erro pois o a variável `y`, que é um let, existe apenas dentro do escopo local. É importante ressaltar que esse comportamento em funções **não se repete**. Caso tentarmos utilizar qualquer variável declarada localmente na função não existiria no escopo global.
88+
89+
~~~JavaScript
90+
let x = 21;
91+
92+
var soma = function soma(){
93+
if(1 + 1 === 2){
94+
let y = 12;
95+
var z = 10;
96+
console.log(x + y + z);
97+
// -> 33
98+
}
99+
}
100+
101+
// A variável y e z não são visíveis aqui, a não ser que tenham sido declaradas globalmente
102+
103+
console.log(x);
104+
// -> 21
105+
~~~
106+
107+
Caso tentarmos imprimir a variável `y` ou `z`, da seguinte forma:
108+
109+
~~~JavaScript
110+
let x = 21;
111+
112+
var soma = function soma(){
113+
if(1 + 1 === 2){
114+
let y = 12;
115+
var z = 10;
116+
console.log(x + y + z);
117+
// -> 33
118+
}
119+
}
120+
121+
// A variável y e z não são visíveis aqui, a não ser que tenham sido declaradas globalmente
122+
123+
console.log(x + y);
124+
// -> ReferenceError: y is not defined
125+
~~~
126+
127+
Esse erro acontece pois a variável `y` não foi definida no escopo global, somente no escopo local da função.
128+
129+
130+
64131
<br>
65132
<br>
66133

@@ -88,6 +155,7 @@ Todo os processamento em funções são determinado entre chaves `{}`.
88155
<div>
89156

90157
###### REFERÊNCIAS DESSE DOCUMENTO
158+
91159
- https://developer.mozilla.org/pt-BR/
92160
- https://eloquentjavascript.net/
93161

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /