Return to Video

03-38 Revenge Of Javascript

  • 0:00 - 0:05
    Agora que sabemos como especificar gramáticas para expressões balanceadas,
  • 0:05 - 0:09
    expressões aritméticas e tags de HTML balanceadas,
  • 0:09 - 0:13
    vamos voltar nossa atenção para JavaScript.
  • 0:13 - 0:17
    JavaScript é muito semelhante a Python.
  • 0:17 - 0:20
    Assim como eu mostrei a você uma gramática formal para HTML,
  • 0:20 - 0:24
    vamos ver agora uma gramática formal para JavaScript.
  • 0:24 - 0:27
    Mas, antes disso, quero ter certeza
  • 0:27 - 0:30
    de que você entende como programas Javascript são interpretados.
  • 0:30 - 0:35
    Vou mostrar para você um pouco mais de Python e JavaScript, apenas para comparação.
  • 0:35 - 0:38
    Aqui, à esquerda, temos uma função Python
  • 0:38 - 0:41
    que computa o valor absoluto do seu argumento inteiro.
  • 0:41 - 0:46
    Se você passa um número negativo, como -5, ela retorna o valor positivo 5.
  • 0:46 - 0:51
    Se você passa um número positivo, como 9000000, ela retorna 9000000.
  • 0:51 - 0:55
    O valor de retorno dessa função é sempre zero ou um número positivo.
  • 0:55 - 0:59
    Vou escrever a mesma coisa em JavaScript,
  • 0:59 - 1:01
    para fins de comparação.
  • 1:01 - 1:07
    Tudo que eu escevi em azul é uma palavra reservada ou símbolo de pontuação usado na linguagem.
  • 1:07 - 1:11
    Por exemplo, para definir uma função em Python, usamos `def'.
  • 1:11 - 1:16
    Em JavaScript, escrevemos a palavra `function', mas ainda é nossa escolha como chamá-la --
  • 1:16 - 1:18
    estou chamando a função de `absval' em ambos os casos --
  • 1:18 - 1:21
    e também quantos parâmetros ela deve ter e quais são os seus nomes --
  • 1:21 - 1:24
    em ambos os casos, temos 1 parâmetro, chamado `x'.
  • 1:24 - 1:29
    Em Python, usamos `:' e tabulação para indicar o que é o corpo da função,
  • 1:29 - 1:33
    e qual é a parte correspondente ao `then' e ao `else' de um comando `if'.
  • 1:33 - 1:38
    Em JavaScript usamos `{' e `}'
  • 1:38 - 1:42
    para indicar esse tipo de escopo léxico.
  • 1:42 - 1:46
    Este é um tipo de `{' (1), e ele casa com este `}' (1) aqui;
  • 1:46 - 1:50
    (2) casa com (2) e (3) casa com (3).
  • 1:50 - 1:55
    Mas, em geral, a estrutura lógica, o significado, é o mesmo.
  • 1:55 - 1:59
    Em ambos os casos, verificamos se x < 0 e retornamos 0-x, neste caso,
  • 1:59 - 2:02
    ou simplesmente x caso contrário.
  • 2:02 - 2:07
    Uma das operações mais importantes em qualquer linguagem de programação é imprimir uma informação,
  • 2:07 - 2:11
    exibir uma informação na tela, para que possamos ver o resuldado da computação,
  • 2:11 - 2:13
    ou simplesmente para nos ajudar a testar o programa.
  • 2:13 - 2:15
    Em Python, usamos esta função print,
  • 2:15 - 2:17
    passando para ela alguns strings.
  • 2:17 - 2:20
    Aqui estou concatenando os strings `hello' e `!'
  • 2:20 - 2:23
    para cumprimetar com estusiasmo -- "hello!".
  • 2:23 - 2:26
    Aqui à direita, estou mostrando a mesma coisa em JavaScript.
  • 2:26 - 2:31
    O equivalente a print é document.write, ou siamplesmente write.
  • 2:31 - 2:35
    Neste curso, vamos quase sempre abreviar para write, para economizar espaço.
  • 2:35 - 2:39
    Se você tem familiaridade com programação orientada a objetos, o que não é necessário neste curso,
  • 2:39 - 2:41
    você deve saber o que este ponto significa.
  • 2:41 - 2:43
    Podemos falar mais sobre isso depois.
  • 2:43 - 2:48
    Uma das diferenças fundamentais, entretanto, é que toda aplicação de uma função JavaScript deve ter
  • 2:48 - 2:51
    estes `(' e `)', como uma função matemática
  • 2:51 -
    tem parênteses em torno de seus argumentos.
Title:
03-38 Revenge Of Javascript
Description:

03-38 Vingança de JavaScript

more » « less
Video Language:
English
Team:
Udacity
Project:
CS262 - Programming Languages
Duration:
02:54
Lucilia Figueiredo edited Portuguese, Brazilian subtitles for 03-38 Revenge Of Javascript
Lucilia Figueiredo added a translation

Portuguese, Brazilian subtitles

Revisions Compare revisions