|
7 | 7 | <article class="content">
|
8 | 8 | <h1>Funções</h1>
|
9 | 9 | <h2>Criando e usando funções personalizadas</h2>
|
10 |
| - <p>Esta página está em construção. Volte em breve ou <a href="https://github.com/tableless/iniciantes">ajude a completá-la</a>!</p> |
| 10 | + |
| 11 | + <p>Inicialmente, pense em funções como caixinhas mágicas: você joga coisas dentro, algo acontece e você recebe de volta uma transformação do que foi colocado. Por exemplo: imagine uma caixinha em que você coloca dois números: 3 e 5 e a caixa te devolve 8.</p> |
| 12 | + |
| 13 | + <p>Os números 3 e 5 que colocamos dentro da caixa iremos chamar de <b>argumentos</b> e o 8 que recebemos, iremos chamar de <b>retorno</b>.</p> |
| 14 | + |
| 15 | + <p>Nem sempre uma função terá argumentos e nem sempre terá um retorno, mas certamente ela irá realizar alguma coisa de nosso interesse, seja mudar a cor de algum elemento, abrir uma janela popup, ou qualquer uma das outras coisas que a linguagem JavaScript pode fazer.</p> |
| 16 | + |
| 17 | + <p>As linguagens de programação já possuem algumas funções pré-definidas para nos ajudar. Da linguagem JavaScript podemos citar: <code>open()</code>(usada para abrir janelas popup), <code>parseInt()</code> (usada para converter um número ou string em inteiro), <code>encodeURI()</code> (codifica uma cadeia de caracteres em um URI válido)... </p> |
| 18 | + |
| 19 | + <h2>Resolvendo problemas</h2> |
| 20 | + |
| 21 | + <p>Sempre que estivermos programando em qualquer linguagem, temos que ter em mente uma coisa muito importante: <em>"o melhor jeito de resolver um problema grande é dividi-lo em problemas menores"</em>, cada um desses "problemas menores" serão resolvidos por funções pequenas, assim juntando as várias pequenas funções, teremos resolvido "o todo".</p> |
| 22 | + |
| 23 | + <p>Apesar de ser possível escrever todo o código que resolve o problema grande numa única função gigante, não fazemos isso. Pois isso tornaria muito complexo nosso código, dificultaria uma futura manutenção e impossibilitaria o reaproveitamento de pequenas rotinas. Por isso preferimos dividir e depois criar uma função grande que utilize nossas outras funções pequenas, do que escrever tudo num só lugar.</p> |
| 24 | + |
| 25 | + <h2>Declarando</h2> |
| 26 | + |
| 27 | + <p>A declaração de uma função é quando construimos a caixa mágica.</p> |
| 28 | + |
| 29 | +<pre class="lang-javascript linenums prettyprint"> |
| 30 | +function foo() { |
| 31 | + //corpo |
| 32 | +} |
| 33 | +</pre> |
| 34 | + |
| 35 | + <p><code>foo</code> é o nome da função e o código entre as chaves {}, é o corpo da nossa função. A palavra <code>function</code> é a forma da linguagem JavaScript indicar que estamos <b>declarando</b> uma função (criando a caixa mágica).</p> |
| 36 | + |
| 37 | + <h2>Invocando</h2> |
| 38 | + |
| 39 | + <p>Após construirmos a caixa, ela por si só não faz absolutamente nada até a chamarmos. A invocação consiste em colocar o nome da função seguido pelos parênteses. Isso faz com que o código dentro do corpo da nossa função seja executado.</p> |
| 40 | +<pre class="lang-javascript linenums prettyprint"> |
| 41 | +foo(); |
| 42 | +</pre> |
| 43 | + |
| 44 | + <p>Experimente salvar um arquivo .html e abrir com o seu navegador, contendo o seguinte código:</p> |
| 45 | +<pre class="lang-html linenums prettyprint"> |
| 46 | +<script> |
| 47 | +function bar() { |
| 48 | + alert('Hello World'); |
| 49 | +} |
| 50 | +</script> |
| 51 | +</pre> |
| 52 | + <p>Após abrir o arquivo com qualquer navegador, você irá notar que não irá acontecer absolutamente nada. Sim, nada. Pois ainda não <b>invocamos</b> a função. Apenas a <b>declaramos</b>. Para invocar, o arquivo ficaria com o seguinte conteúdo:</p> |
| 53 | + |
| 54 | +<pre class="lang-html linenums prettyprint"> |
| 55 | +<script> |
| 56 | +// declarando |
| 57 | +function bar() { |
| 58 | + alert('Hello World'); |
| 59 | +} |
| 60 | + |
| 61 | +// invocando |
| 62 | +bar(); |
| 63 | +</script> |
| 64 | +</pre> |
| 65 | + |
| 66 | + <h2>Exemplo de função com argumentos e retorno</h2> |
| 67 | + |
| 68 | + <p>Lembram que eu iniciei o texto falando de uma caixa mágica que recebia 2 números e devolvia a soma deles ? Essa função ficaria assim:</p> |
| 69 | +<pre class="lang-javascript linenums prettyprint"> |
| 70 | +function somar(x, y) { |
| 71 | + return x + y; |
| 72 | +} |
| 73 | +</pre> |
| 74 | + <p>E para invocar essa função <code>somar()</code> podemos passar quaisquer dois números:</p> |
| 75 | +<pre class="lang-javascript linenums prettyprint"> |
| 76 | +somar(3, 5); |
| 77 | +somar(1, 2); |
| 78 | +somar(10, 32); |
| 79 | +</pre> |
| 80 | + <p>Só que não vermos nada, pois não direcionamos o <code>return</code> para lugar nenhum.</p> |
| 81 | + |
| 82 | +<pre class="lang-javascript linenums prettyprint"> |
| 83 | +<p id="resultado"></p> |
| 84 | +<p id="resultado2"></p> |
| 85 | +<script> |
| 86 | +alert(somar(3, 5)); |
| 87 | +document.getElementById('resultado').innerHTML = somar(1, 2); |
| 88 | +document.getElementById('resultado2').innerHTML = somar(10, 32); |
| 89 | +</script> |
| 90 | +</pre> |
11 | 91 | </article>
|
0 commit comments