JAVASCRIPT ECMA-262 edição 5.1 (junho 2011) (ECMAScript 5 !)

Slides:



Advertisements
Apresentações semelhantes
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Advertisements

Paulo Marques Hernâni Pedroso
JavaScript O JavaScript é uma linguagem de scripting, orientada a objectos e independente de plataformas Criada pela NetScape Código embebido em paginas.
Prof. Thiago Pereira Rique
Histórico do Java 1990 James Gosling (Sun Microsystems)
Perspectivas baseadas em procedimentos e orientadas por objectos Conceitos principais: Encapsulamento, Herança, Polimorfismo (Encapsulation, Hierarchy,
Programação para Engenharia I
Programação Básica em Java
Polimorfismo e Acoplamento Dinâmico
Disciplina: AAM Profa. Ana Watanabe 03/13 vol.2
Tipos de dados, valores literais e variáveis
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Interfaces em Java1 Interfaces Prof. Ricardo Linden.
Paradigmas da Programação
Introdução ao JavaScript
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Revisão da Linguagem C.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
JAVA: Conceitos Iniciais
Linguagem de Expressão (EL)
PHP Tipos de dados Constantes.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Linguagem JavaScript Programação na Internet
Linguagem JavaScript Programação na Internet
Programação I Aula 2 (Métodos)
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Linguagem de Programação JAVA
Introdução à Programação Orientada a Objetos com Java
Tipos de Dados Paradigmas de Programação
Classes, Objetos, Atributos e Métodos JAVA
Operadores e Atribuições Capítulo 3
Introdução à Linguagem Java
Linguagem de Programação JAVA
Mini Curso Java como Programar
Pilhas Profa. Nádia Félix.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
PrograMação para internet
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
By Ducheno Kelly Centro de Formação São Domingos.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Linguagem de Programação C#
Tipos de Dados Operadores
Programação Orientada a Objetos - Java
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Classes Abstratas e Interface
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Linguagem I Strings.
Programação Funcional
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Fundamentos da Linguagem C#
Conceitos Básicos e Manipulação de Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Introdução Sintaxe Básica da Linguagem JAVA
Profa. Maria Augusta Constante Puget
Módulo II Capítulo 1: Orientação a Objetos
Linguagem Java Programação II.
JavaScript Introdução ao JavaScript 1. Objetivos Introdução Sintaxe Básica Arquivo (script) externo Script no HEAD da página Script no BODY da página.
Linguagem de Programação – Aula 02 Prof. Me. Ronnison Reges Vidal.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

JAVASCRIPT ECMA-262 edição 5.1 (junho 2011) (ECMAScript 5 !) ©Jorge L S Leão, Junho 2012

Parte 1: Javascript Básica Parte 2: DOM Parte 3: AJAX

Há várias maneiras de se experimentar Javascript. Se você já usa o Netbeans para desenvolver aplicações Web, pode criar um projeto Web e uma página com o código html abaixo:

Além disto, crie o arquivo teste01.js na raiz das WebPages (junto com a página html). Por exemplo: var meuObjeto = { metodoA:function(){alert('FUNCIONOU!');} } meuObjeto.metodoA(); Agora rode o comando no Netbeans para ver a página html no browser (shift-F6 com foco no arquivo html).

Quando você modificar o arquivo teste01.js, basta: -salvá-lo no Netbeans (cntrl-S), -mudar o foco para o browser (alt-tab), -recarregar a página no browser (cntrl-R) Há quatro maneiras simples de interagir com Javascript no ambiente de um browser: 1. alert(Hello!); 2. var bool = confirm("Confirma?"); 3. var texto = prompt("Digite","aquí..."); 4. console.log(mensagem...);

Atenção, pois as três primeiras funções são síncronas e não devem ser usadas junto com funções assíncronas. Você também pode, além disto, utilizar os plugins de depuração dos próprios browsers. SÓ ISTO!

Agora vamos começar a ver os elementos de JAVASCRIPT

Parte 1 : Javascript Básica

Palavras reservadas: abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var volatile void while with

Variáveis: São nomes (identificadores, palavras não reservadas). São fracamente tipadas ou dinamicamente tipadas. Melhor dizendo, NÃO SÃO TIPADAS! Em cada estado da computação, são mapeadas em valores, eventualmente de sortes diferentes.

Sortes (conjuntos de valores) : Só há duas sortes em Javascript: objetos e undefined (na verdade, undefined não é uma sorte..., mas sim a ausência mais absoluta de um valor)

Sortes: Há quatro sortes básicas e 2 especiais 1.Boolean 2.Number 3.String 4.Object null undefined Atenção! As 5 primeiras são objetos, isto é, boolean, number, string e null também são objetos!

Sortes: Os objetos ainda podem ser divididos em: – Definidos pelo programador – Function (esta sorte de objetos é destacada) – Array – Date – RegExp – Error types

Sortes (dizendo de outra forma...) : – Sortes primitivas (cujos elementos são objetos!): Números Booleanos Strings – Objetos, definidos pelo programador: conjuntos de propriedades (variáveis) e métodos – Objetos pré-fabricados: Date, RegExp, Error,... – Funções: podem ser primitivas ou definidas pelo programador (funções também são objetos!) – Sortes especiais: null undefined QUER DIZER, TODOS OS VALORES (menos undefined) SÃO OBJETOS!

Números: Só tem números de 64 bits, ponto flutuante, IEEE-754 (double de Java). Inclui, como no padrão IEEE-754, NaN. Pode parecer pouco flexível, mas você nunca vai usar o tipo errado de número...

Booleanos: true, false Valores falsificantes, além do false (que vão funcionar como se fossem o false): – null – undefined – (string vazio) – 0 – NaN Todos os outros valores são tautologizantes (vão funcionar como se fossem o true)

Strings: Sequência de 0 ou mais caracteres. Os caracteres NÃO são valores! Caracteres são strings de comprimento 1. Os caracteres ECMAScript têm 16 bits (2 bytes). ECMAScript exterioriza caracteres segundo UCS-2. (UCS-2 é uma codificação de UNICODE) A implementação interna costuma ser UCS-2 ou UTF-16. Aos interessados, sugiro:

Strings (continuação): Strings são imutáveis. Se a e b são strings iguais, caractere a caractere, então a == b avalia igual a true. Literais de string podem ser escritos como string ou string (apóstrofos ou aspas, como diz o povo: aspas simples ou aspas duplas).

null: – Usado para significar não possui um outro valor. – Pode (e deve) ser usado pelo programador. – É um objeto. undefined: – Usado para significar não foi iniciado ou não existe. – É usado pelo interpretador JS. – É o default de variáveis, de argumentos de funções e de membros inexistentes de objetos. – É o único valor que NÃO é um objeto! Melhor dizendo, undefined não é um valor, é a ausência de um valor. É o elemento de um conjunto vazio, isto é, não existe.

Objetos: Declaração: notação literal, com chaves var meuObjeto = {... } São conjuntos de pares nome:valor, separados por vírgulas. O nome é um identificador. O valor é um elemento de qualquer uma das sortes já apresentadas. var meuObjeto = {nivel:5, mensagem:ERRO} (esta é a Javascript Standard Object Notation - JSON)

Objetos (continuação): Na verdade, como os valores primitivos também são objetos e as funções também são objetos, um objeto definido pelo programador, com a ajuda das chaves {...}, é um HashMap de outros objetos. Por isto, objetos também são chamados de arrays associativos. Outro exemplo: var objetoExemplo = { nivel:URGENTE, mensagem:ERRO, reconhecer:function(){alert(ERRO!);} }

Funções: São objetos destacados, com uma sintaxe especial! Declaração: var minhaFuncao = function (){... } que é equivalente a function minhaFuncao(){... } A palavra reservada function com () significa que o objeto {...} pode ser invocado!

Funções (continuação): Como pode ser observado na primeira declaração da função, o lado direito do sinal de igual define uma função sem nome, como são todos os objetos. Este estilo de tratar uma função sem nome é conhecido como a notação lambda. Uma função é então um valor (objeto) como qualquer outro, podendo ser atribuído a variáveis, passado como argumento ou retornado.

Funções (continuação): Maneiras de invocar uma função: Pelo nome: functionObject(arguments) Como método: thisObject.methodName(arguments) thisObject["methodName"](arguments) Pelo construtor: new functionObject(arguments) (continua)

Funções (continuação): Maneiras de invocar uma função (continuação): Usando o método apply: functionObject.apply(scopeObj,argsArray) Usando o método call: functionObject.call(scopeObj,argsList)

Arrays: Arrays são objetos com uma notação especial que torna o seu uso mais parecido com o uso nas outras linguagens como C e Java. Basicamente, pode-se declarar um array da seguinte forma: var meuArray = []; Ao invés da declaração usual de objetos: var meuObjeto = {};

Arrays(continuação): A declaração de um array desta forma cria um objeto com uma propriedade a mais chamada length. O acesso às componentes do array é feito da forma usual: var valor = meuArray[5]; O interpretador JS transforma automática e transparentemente este acesso no seguinte acesso: var valor = meuArray[5];

Arrays(continuação): A adição de novas componentes ao array aumenta automaticamente o valor de length. Como se trata na verdade de um objeto, componentes inexistentes vão produzir resultados undefined. Esta definição de arrays é particularmente eficiente para tratar de arrays esparsos.

sorteretorno de typeof object'object' function'function' array'object' number'number' string'string' boolean'boolean' null'object' undefined'undefined' O operador prefixado typeof retorna uma string que identifica a sorte do valor.

Podemos observar quatro coisas acerca do operador typeof: O retorno para um array é object, como se podia esperar. Mas o retorno para uma função é function, embora ela também seja um objeto! O retorno de null é object (sim, null é um objeto!) O retorno de undefined é undefined, isto é: undefined não é nem um objeto!

Comandos: atribuição

Comandos: operadores

Comandos: if

Comandos: switch

Comandos: for

Comandos: while

Comandos: do

Comandos: Labels, break,continue

Comandos: return

Comandos: try/catch/throw

FALTA: -Comandos: atribuição,operadores,if,switch,for,while,do,labels, break,continue,return,try/catch/throw -API básica da linguagem: Funções predefinidas das várias sortes. -Construtor e new, Linking, prototyping -closure -Javascript é uma linguagem funcional? LISP, Scheme, ML, Haskel, F# -Javascript é uma linguagem orientada a objetos?

Parte 2 : DOM

Parte 3 : AJAX