SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
JavaScript -
      Funções
        Cristiano Pires Martins
Fonte: JavaScript - Guia do Programador
                Maujor
Definições

• Função é um poderoso objeto destinado a
  executar uma ação;
• É um bloco de código capaz de realizar
  ações;
• Função é um exemplo de reutilização
  inteligente de código;
• Tem a finalidade de dar maior legibilidade ao
  programa e facilitar a manutenção.
Criando Funções
• Com o uso da declaração function:
  function minhaFuncao(){
  // aqui bloco de código
  };

• Com o uso do objeto construtor precedido da
  palavra-chave new:
  var minhaFuncao = new function (/*aqui bloco de código*/);

• Com o uso da sintaxe literal:
  var minhaFuncao = function(){
  // aqui bloco de código
  };
Declaração Function
<head>
...
<script type=”text/javascript”>
   function ola(){
      alert(“Bem-vindo ao meu site”);
   };
</script>
</head>
<body>
...
   <button type=”button” onclick=”ola();”>
   Executar função</button>
Declaração Function
<head>
...
<script type=”text/javascript”>
    function calculaRetangulo(b,h){
       var area = (b*h);
       var perimetro = (b+h)*2;
       alert(“Área: ” + area + “nPerímetro: ” + perimetro);
    };
</script>
</head>
<body>
...
    <button type=”button” onclick=”calculaRetangulo(5,10);”>
    Executar função</button>
...
Declaração Function
<head>
...
<script type=”text/javascript”>
    function calculaAreaRetangulo(b,h){
       return b*h;
    };
</script>
</head>
<body>
...
    <button type=”button”
    onclick=”alert(calculaAreaRetangulo(5,10));”>
    Executar função</button>
...
Function( )
<head>
...
<script type=”text/javascript”>
      var ola = new Function(“alert(‘Bem-vindo!’);”);
</script>
</head>
<body>
...
    <button type=”button” onclick=”ola( );”>
    Executar função</button>
...
Function( )
<head>
...
<script type=”text/javascript”>
      var calculaAreaRetangulo = new
      Function(“b”,”h”,“return b*h;”);
</script>
</head>
<body>
...
    <button type=”button”
    onclick=”alert(calculaAreaRetangulo(5,10));”>
    Executar função</button>
...
Sintaxe Literal
<head>
...
<script type=”text/javascript”>
      var ola = function(){
         return alert(“Bem-vindo!”);
      };
</script>
</head>
<body>
...
    <button type=”button” onclick=”ola( );”>
    Executar função</button>
...
Sintaxe Literal
<head>
...
<script type=”text/javascript”>
      var calculaAreaRetangulo = function(b,h){
         return b*h;
      };
</script>
</head>
<body>
...
    <button type=”button”
    onclick=”alert(calculaAreaRetangulo(5,10));”>
    Executar função</button>
...
Retornando Objetos
<head>
...
<script type=”text/javascript”>
    function calculaRetangulo(b,h){
       var area = (b*h);
       var perimetro = (b+h)*2;
       return alert(“Área: ” + area + “nPerímetro: ” + perimetro);
    };
</script>
</head>
<body>
...
    <button type=”button” onclick=”calculaRetangulo(5,10);”>
    Executar função</button>
...
Retornando Objetos
<head>
...
<script type=”text/javascript”>
    function calculaRetangulo(b,h){
       var area = (b*h);
       var perimetro = (b+h)*2;
       return {
          area: area,
          perimetro: perimetro
       };
    };
</script>
</head>
<body>
...
    <button type=”button” onclick=”var resultados = calculaRetangulo(8,4);
    alert(`Área:’ + resultados.area); alert(‘Perímetro: ‘ +
    resultados.perimetro);”>
    Executar função</button>
...
Retornando Array
<head>
...
<script type=”text/javascript”>
    function calculaRetangulo(b,h){
       var area = (b*h);
       var perimetro = (b+h)*2;
       return [area, perimetro];
    };
</script>
</head>
<body>
...
    <button type=”button” onclick=”var resultados = calculaRetangulo(8,4);
    alert(`Área:’ + resultados[0]); alert(‘Perímetro: ‘ + resultados[1]);”>
    Executar função</button>
...
Sintaxe(function f(){...})()
<head>
...
<script type=”text/javascript”>
    function calculaArea(b,h){
       var area = (b*h);
       return area;
    };
    alert(calculaArea(3,7));
    alert(calculaArea);
</script>
</head>                           O segundo alert() mostra
<body>
...                                    a função em si.
Escopo da Função


• O corpo de uma função cria um escopo
  local para variáveis nele declaradas
  com o uso da palavra-chave var.
• Os argumentos de uma função também
  pertencem ao escopo local.
Escopo de uma Função
<script type=”text/javascript”>
  function testeEscopo( ){
     var soma = 2 + 6;
     alert(“A soma é: “ + soma);! //A soma é 8
  };
  testeEscopo( );
  try{
     alert(“O dobro da soma é: ” + 2*soma);! //Resulta em soma undefined
  }
  catch(e){
     alert(e.message);!!   //Mostra a mensagem de erro
  }
</script>
Escopo de uma Função
<script type=”text/javascript”>
  function testeEscopo( ){
     soma = 2 + 6;
     alert(“A soma é: “ + soma);! //A soma é 8
  };
  testeEscopo( );
  try{
     alert(“O dobro da soma é: ” + 2*soma);! //Resulta em 16
  }
  catch(e){
     alert(e.message);!!   //Não há mensagem de erro
  }
</script>
Closures



• A ideia central de uma closure é
  exatamente a de confinamento de uma
  função dentro da outra.
Closures
<script type=”text/javascript”>
  function funcaoExterna( ){
     alert(“Função externa”);
                                             A função externa executa
     function funcaoInterna( ){          normalmente, mas a interna não é
         alert(“Função interna”);       executada, pois foi chamada fora da
     };                                           função externa
  };

</script>
<body>
  <button type=”button” onclick=”funcaoExterna( )”>Executar função
  externa</button><br />
  <button type=”button” onclick=”funcaoInterna( )”>Executar função
  interna</button>
</body>
Closures
<script type=”text/javascript”>
  function funcaoExterna( ){
     alert(“Função externa”);           Como a função interna foi chamada
     function funcaoInterna( ){        dentro da função externa, é executada
         alert(“Função interna”);                  normalmente
     };
     funcaoInterna();
  };

</script>
<body>
  <button type=”button” onclick=”funcaoExterna( )”>Executar função
  externa</button><br />
</body>
Closures
<script type=”text/javascript”>
  function funcaoExterna( ){
     alert(“Função externa”);
     function funcaoInterna( ){            As duas funções são executadas
         alert(“Função interna”);                   normalmente
     };
     variavelGlobal = funcaoInterna;
  };

</script>
<body>
  <button type=”button” onclick=”funcaoExterna( )”>Executar função
  externa</button><br />
  <button type=”button” onclick=”variavelGlobal( )”>Executar função
  interna</button>
</body>
Funções Globais

• Funções que não estão associadas a um
  objeto particular da linguagem.
 •   eval(código): executar um script inserido no argumento
     código (cuidado ao usar, pois proporciona meios de servir
     código malicioso);
 •   isFinite(valor): testa um valor passado como argumento da
     função. True se for número ou false caso contrário;
 •   isNaN(valor): testa um valor passado como argumento da
     função. True se não for um número e falso caso contrário.
Funções Globais

• Number(valor): converte em um
  número o valor passado como
  argumento da função.
• parseFloat(string [,base]): converte em
  um número o valor passado como
  argumento da função. Admite um
  argumento opcional que é a base na
  qual o número deverá ser retornado.

Contenu connexe

Tendances

PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersHarlley Oliveira
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPGuilherme Blanco
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
modernizando a arquitertura de sua aplicação
modernizando a arquitertura  de sua aplicaçãomodernizando a arquitertura  de sua aplicação
modernizando a arquitertura de sua aplicaçãoAntonio Spinelli
 
Hooks, o condimento mágico e escondido do WordPress
Hooks, o condimento mágico e escondido do WordPressHooks, o condimento mágico e escondido do WordPress
Hooks, o condimento mágico e escondido do WordPressZé Fontainhas
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanosnobios
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaMilfont Consulting
 

Tendances (20)

PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHP
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Java script aula 07 - eventos
Java script   aula 07 - eventosJava script   aula 07 - eventos
Java script aula 07 - eventos
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
Python 08
Python 08Python 08
Python 08
 
modernizando a arquitertura de sua aplicação
modernizando a arquitertura  de sua aplicaçãomodernizando a arquitertura  de sua aplicação
modernizando a arquitertura de sua aplicação
 
Hooks, o condimento mágico e escondido do WordPress
Hooks, o condimento mágico e escondido do WordPressHooks, o condimento mágico e escondido do WordPress
Hooks, o condimento mágico e escondido do WordPress
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanos
 
Ecommerce, mais simples do que parece
Ecommerce, mais simples do que pareceEcommerce, mais simples do que parece
Ecommerce, mais simples do que parece
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Beagajs
BeagajsBeagajs
Beagajs
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Php 05 Mvc
Php 05 MvcPhp 05 Mvc
Php 05 Mvc
 
Python 06
Python 06Python 06
Python 06
 
Http Servlet
Http ServletHttp Servlet
Http Servlet
 

En vedette

Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 
Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Cristiano Pires Martins
 

En vedette (20)

Java script aula 03 - objetos
Java script   aula 03 - objetosJava script   aula 03 - objetos
Java script aula 03 - objetos
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Javascript tutorial
Javascript tutorialJavascript tutorial
Javascript tutorial
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Aula 05-entrada e-saida
Aula 05-entrada e-saidaAula 05-entrada e-saida
Aula 05-entrada e-saida
 
Aula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oacAula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oac
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programasAula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
 
Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2
 
Aula 03-deadlock
Aula 03-deadlockAula 03-deadlock
Aula 03-deadlock
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
Aula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-riscAula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-risc
 
Aula 06 textos na web
Aula 06   textos na webAula 06   textos na web
Aula 06 textos na web
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 

Similaire à Java script aula 05 - funções

LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09Carlos Santos
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scopeCarlos Santos
 
Programação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncronoProgramação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncronoLeonardo Borges
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Michael Castillo Granados
 
JavaScript - De verdade
JavaScript - De verdadeJavaScript - De verdade
JavaScript - De verdadeLuis Vendrame
 
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiamJS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiamiMasters
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e RecursivasKadzuwa Kuyeri
 
TDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Jstdc-globalcode
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01thomasdacosta
 
LabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesLabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesCarlos Santos
 

Similaire à Java script aula 05 - funções (20)

LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
Programação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncronoProgramação functional reativa: lidando com código assíncrono
Programação functional reativa: lidando com código assíncrono
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
JavaScript - De verdade
JavaScript - De verdadeJavaScript - De verdade
JavaScript - De verdade
 
Interface grafica
Interface graficaInterface grafica
Interface grafica
 
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiamJS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
JS Experience 2017 - Web APIs que você provavelmente não sabia que existiam
 
Javascript avançado
Javascript avançadoJavascript avançado
Javascript avançado
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e Recursivas
 
TDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Js
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Javascript
JavascriptJavascript
Javascript
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01
 
LabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - FunçõesLabMM4 (T13 - 12/13) - Funções
LabMM4 (T13 - 12/13) - Funções
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 

Plus de Cristiano Pires Martins (13)

Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Aula 05 layout e composição do site
Aula 05   layout e composição do siteAula 05   layout e composição do site
Aula 05 layout e composição do site
 
Aula 04 layout e composição do site
Aula 04   layout e composição do siteAula 04   layout e composição do site
Aula 04 layout e composição do site
 
Aula 02 semiótica e cores
Aula 02   semiótica e coresAula 02   semiótica e cores
Aula 02 semiótica e cores
 
Aula 01 introdução
Aula 01   introduçãoAula 01   introdução
Aula 01 introdução
 
Aula 03 esquema de cores
Aula 03   esquema de coresAula 03   esquema de cores
Aula 03 esquema de cores
 
WDI - aula 07 - css com html
WDI - aula 07 - css com htmlWDI - aula 07 - css com html
WDI - aula 07 - css com html
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
OAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e SaídaOAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e Saída
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digitalAula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digital
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
 
Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1
 

Java script aula 05 - funções

  • 1. JavaScript - Funções Cristiano Pires Martins Fonte: JavaScript - Guia do Programador Maujor
  • 2. Definições • Função é um poderoso objeto destinado a executar uma ação; • É um bloco de código capaz de realizar ações; • Função é um exemplo de reutilização inteligente de código; • Tem a finalidade de dar maior legibilidade ao programa e facilitar a manutenção.
  • 3. Criando Funções • Com o uso da declaração function: function minhaFuncao(){ // aqui bloco de código }; • Com o uso do objeto construtor precedido da palavra-chave new: var minhaFuncao = new function (/*aqui bloco de código*/); • Com o uso da sintaxe literal: var minhaFuncao = function(){ // aqui bloco de código };
  • 4. Declaração Function <head> ... <script type=”text/javascript”> function ola(){ alert(“Bem-vindo ao meu site”); }; </script> </head> <body> ... <button type=”button” onclick=”ola();”> Executar função</button>
  • 5. Declaração Function <head> ... <script type=”text/javascript”> function calculaRetangulo(b,h){ var area = (b*h); var perimetro = (b+h)*2; alert(“Área: ” + area + “nPerímetro: ” + perimetro); }; </script> </head> <body> ... <button type=”button” onclick=”calculaRetangulo(5,10);”> Executar função</button> ...
  • 6. Declaração Function <head> ... <script type=”text/javascript”> function calculaAreaRetangulo(b,h){ return b*h; }; </script> </head> <body> ... <button type=”button” onclick=”alert(calculaAreaRetangulo(5,10));”> Executar função</button> ...
  • 7. Function( ) <head> ... <script type=”text/javascript”> var ola = new Function(“alert(‘Bem-vindo!’);”); </script> </head> <body> ... <button type=”button” onclick=”ola( );”> Executar função</button> ...
  • 8. Function( ) <head> ... <script type=”text/javascript”> var calculaAreaRetangulo = new Function(“b”,”h”,“return b*h;”); </script> </head> <body> ... <button type=”button” onclick=”alert(calculaAreaRetangulo(5,10));”> Executar função</button> ...
  • 9. Sintaxe Literal <head> ... <script type=”text/javascript”> var ola = function(){ return alert(“Bem-vindo!”); }; </script> </head> <body> ... <button type=”button” onclick=”ola( );”> Executar função</button> ...
  • 10. Sintaxe Literal <head> ... <script type=”text/javascript”> var calculaAreaRetangulo = function(b,h){ return b*h; }; </script> </head> <body> ... <button type=”button” onclick=”alert(calculaAreaRetangulo(5,10));”> Executar função</button> ...
  • 11. Retornando Objetos <head> ... <script type=”text/javascript”> function calculaRetangulo(b,h){ var area = (b*h); var perimetro = (b+h)*2; return alert(“Área: ” + area + “nPerímetro: ” + perimetro); }; </script> </head> <body> ... <button type=”button” onclick=”calculaRetangulo(5,10);”> Executar função</button> ...
  • 12. Retornando Objetos <head> ... <script type=”text/javascript”> function calculaRetangulo(b,h){ var area = (b*h); var perimetro = (b+h)*2; return { area: area, perimetro: perimetro }; }; </script> </head> <body> ... <button type=”button” onclick=”var resultados = calculaRetangulo(8,4); alert(`Área:’ + resultados.area); alert(‘Perímetro: ‘ + resultados.perimetro);”> Executar função</button> ...
  • 13. Retornando Array <head> ... <script type=”text/javascript”> function calculaRetangulo(b,h){ var area = (b*h); var perimetro = (b+h)*2; return [area, perimetro]; }; </script> </head> <body> ... <button type=”button” onclick=”var resultados = calculaRetangulo(8,4); alert(`Área:’ + resultados[0]); alert(‘Perímetro: ‘ + resultados[1]);”> Executar função</button> ...
  • 14. Sintaxe(function f(){...})() <head> ... <script type=”text/javascript”> function calculaArea(b,h){ var area = (b*h); return area; }; alert(calculaArea(3,7)); alert(calculaArea); </script> </head> O segundo alert() mostra <body> ... a função em si.
  • 15. Escopo da Função • O corpo de uma função cria um escopo local para variáveis nele declaradas com o uso da palavra-chave var. • Os argumentos de uma função também pertencem ao escopo local.
  • 16. Escopo de uma Função <script type=”text/javascript”> function testeEscopo( ){ var soma = 2 + 6; alert(“A soma é: “ + soma);! //A soma é 8 }; testeEscopo( ); try{ alert(“O dobro da soma é: ” + 2*soma);! //Resulta em soma undefined } catch(e){ alert(e.message);!! //Mostra a mensagem de erro } </script>
  • 17. Escopo de uma Função <script type=”text/javascript”> function testeEscopo( ){ soma = 2 + 6; alert(“A soma é: “ + soma);! //A soma é 8 }; testeEscopo( ); try{ alert(“O dobro da soma é: ” + 2*soma);! //Resulta em 16 } catch(e){ alert(e.message);!! //Não há mensagem de erro } </script>
  • 18. Closures • A ideia central de uma closure é exatamente a de confinamento de uma função dentro da outra.
  • 19. Closures <script type=”text/javascript”> function funcaoExterna( ){ alert(“Função externa”); A função externa executa function funcaoInterna( ){ normalmente, mas a interna não é alert(“Função interna”); executada, pois foi chamada fora da }; função externa }; </script> <body> <button type=”button” onclick=”funcaoExterna( )”>Executar função externa</button><br /> <button type=”button” onclick=”funcaoInterna( )”>Executar função interna</button> </body>
  • 20. Closures <script type=”text/javascript”> function funcaoExterna( ){ alert(“Função externa”); Como a função interna foi chamada function funcaoInterna( ){ dentro da função externa, é executada alert(“Função interna”); normalmente }; funcaoInterna(); }; </script> <body> <button type=”button” onclick=”funcaoExterna( )”>Executar função externa</button><br /> </body>
  • 21. Closures <script type=”text/javascript”> function funcaoExterna( ){ alert(“Função externa”); function funcaoInterna( ){ As duas funções são executadas alert(“Função interna”); normalmente }; variavelGlobal = funcaoInterna; }; </script> <body> <button type=”button” onclick=”funcaoExterna( )”>Executar função externa</button><br /> <button type=”button” onclick=”variavelGlobal( )”>Executar função interna</button> </body>
  • 22. Funções Globais • Funções que não estão associadas a um objeto particular da linguagem. • eval(código): executar um script inserido no argumento código (cuidado ao usar, pois proporciona meios de servir código malicioso); • isFinite(valor): testa um valor passado como argumento da função. True se for número ou false caso contrário; • isNaN(valor): testa um valor passado como argumento da função. True se não for um número e falso caso contrário.
  • 23. Funções Globais • Number(valor): converte em um número o valor passado como argumento da função. • parseFloat(string [,base]): converte em um número o valor passado como argumento da função. Admite um argumento opcional que é a base na qual o número deverá ser retornado.