Javascript referencias a linguagem - PARTE 7


retorna: <i>sergio</i>
lastIndexOf(substring)
lastIndexOf(substring,
posiçãoInicial)
Procura a ultima ocorrência da substring dentro da string.
localeCompare(outraString)
Compara outra string com a string e retorna:
negativo se string < outraString
0 se for igual
positivo se string > outraString
match(regexp) retorna posição encontrada segundo expressão regular
replace(valorBusca,
valorSubstituição)
troca onde localizar valorBusca por
valorSubstituição, o valor de busca pode tanto ser uma string, como
uma expressão regular, se for uma string somente a
primeira ocorrência será substrituida.
search(valorBusca) procura por valorBusca
slice(inicio)
slice(inicio, fim)
substring do inicio até o fim, fim não é incluso,
small() new String("teste").small();
retorna: <small>teste</small>
split()
new String("Sergio Eduardo
Rodrigues").split(" ");
retorna: [“Sergio”, “Eduardo”, “Rodrigues”]
strike() new String("teste").strike();
retorna: <strike>teste</strike>
sub() new String("teste").sub();
retorna: <sub>teste</sub>
substr(posicao, quantidade)
Retorna a substring da posição inicial, com
tamanho fornecido pela quantidade. a posição pode ser
negativo, indicando relativo ao final da string.
substring(posiçãoInicial) Substring da posição inicial até
Conteúdo disponível sob GNU Free Documentation License.
substring(posiçãoInicial,
posiçãoFinal)
posição final, posição final não
é inclusa. se a posição final não for fornecida, será retornado a
string da posição
inicial até fim da string
sup() new String("teste").sup();
retorna: <sup>teste</sup>
toLocaleLowerCase() Converte para minusculo
toLocaleUpperCase() Converte para maiusculo
toLowerCase() Converte para minusculo
toUpperCase() Converte para maiusculo
<método estático>
fromCharCode(numero)
retorna o caracter representado pelo indice unicode <numero>
• Objeto Number:
Atributos
Nome Descrição
NaN Representa valores que não são considerados
números
NEGATIVE_INFINITY Valor infinito negativo
POSITIVE_INFINITY Valor infinito positivo
Métodos
Nome Descrição
Number(numero) Construtor
toString() Converte para string decimal ou na base fornecida
Conteúdo disponível sob GNU Free Documentation License.
toString(base)
toLocaleString() Converte para string na localidade atual
valueOf() Converte de um objeto para number
toFixed(decimais) Retorna string com numero formatado contendo decimais
casas.
toExponential(decimais
) Retorna string notação exponencial com decimais dígitos
toPresision(decimais) Formata numero de dígitos
• Objeto XMLHttpRequest:
Com o advento do AJAX, este objeto se torna cada vez mais importante. Ele, infelizmente,
não é padronizado, e portanto, até que saia uma resolução, devemos sempre fazer checagem
para criação deste objeto, a seguir apresento a sua estrutura, e em seguida uma pequena
rotina para criação e manipulação do mesmo.
Atributos
Nome Descrição
readyState
Representa o estado do objeto, pode ser :
* 0 - nao inicializado (uninitalized)
* 1 - carregando (loading)
* 2 - carregado (loaded)
* 3 - interativo (interactive)
* 4 - completo (complete)
responseXML Resposta em xml (document)
responseText Resposta em texto
status Valor numero de retorno
statusText Texto de status
multipart Indica que esta recebendo um texto multipart
Métodos
Nome Descrição
stop() Pára a transferência
Conteúdo disponível sob GNU Free Documentation License.
getAllResponseReaders() Retorna nomes dos cabeçalhos
getResponseReader(name) Retorna valor do cabeçalho
open("metodo", "url"[, indicadorDeAssincrono[, nomeUsuario
[, senha]]]) Abre comunicação
send(content) Envia conteúdo
setRequestHeader("nome", "valor") Atribui dados a cabeçalho antes do
envio
overrideMimeType("mime-type") sobre escreve o tipo retornado
Eventos
Nome Descrição
onload Event listener que recebe event como parametro, assim pode-se receber
elementos como resposta
onerror Evento chamado caso ocorra um erro na carga
onprogress Evento chamado durante a carga, caso seja um conteudo muito grande para
baixar.
onreadystatechange Evento chamado quando o estado da carga muda.
• Exemplo de Uso:
Salve este código como request.js
var RequestObject;
function initRequest(newRequestFunc, noBody) {
var _newRequest = newRequestFunc;
var _noBody = noBody;
var _id = 0;
return function() {
this.newRequest = _newRequest;
this.concatTimer = function(url, id) {
return url +
(url.indexOf("?") < 0 ? "?" : "&")+
"requestTime=" + new Date().getTime() +
"&requestId=" + id;
}
this.loadText = function(url, method) {
var req = _newRequest();
req.open(method || "GET", this.concatTimer(url, _id++),
false);
if (_noBody)
req.send();
else
req.send(null);
return req.responseText;
}
this.splitLines = function(text) {
Conteúdo disponível sob GNU Free Documentation License.
try {
return text.split(/\r?\n|\r/);
} catch(e) {
return [];
}
}
this.loadLines = function(url, method) {
return this.splitLines(this.loadText(url, method ||
"GET"));
}
this.loadXML = function(url, method) {
var req = _newRequest();
req.open(method || "GET", this.concatTimer(url, _id++),
false);
if (_noBody)
req.send();
else
req.send(null);
return req.responseXML;
}
this.bind = function(object) {
var url = object['url'];
if (typeof url == 'undefined')
throw "necess?rio URL para fazer bind";
var id = _id++;
var req = _newRequest();
var method = object['method'] || "GET";
var headers = object['header'];
var body = object['body'];
var user = object['username'];
var pass = object['password'];
var onload = object['onload'];
var onerror = object['onerror'];
var onprocess = object['onprocess'];
var onstatechange = object['onstatechange'];
req.onreadystatechange=function() {
if (onstatechange)
onstatechange(req, id);
switch(req.readyState) {
case 0: // UNINITIALIZED open() não foi
chamado ainda
break;
case 1: // LOADING send() não foi
chamado ainda
case 2: // LOADED send() foi chamado,
disponível getResponseHeader e status
case 3: // INTERACTIVE carregando,
responseText tem dados parciais
if (onprocess)
onprocess(req, id);
break;
case 4: // COMPLETED, todas as operações
foram concluidas
if (onprocess)
onprocess(req, id);
if (req.status == 0 ||
req.status == 200) {
if (onload)
onload(req, id);
} else {
Conteúdo disponível sob GNU Free Documentation License.
if (onerror)
onerror(req, id,
req.statusText);
}
break;
}
}
if (user)
req.open(method, this.concatTimer(url, id),
true, user, password);
else
req.open(method, this.concatTimer(url, id));
req.setRequestHeader('requestid', id);
for(var header in headers) {
req.setRequestHeader(header, headers[header]);
}
try {
if (body && _noBody) {
req.send();
} else {
req.send(body);
}
} catch(e) {
if (onerror) {
onerror(req, id, e);
}
}
}
}
}
if (window.ActiveXObject) {
var objectNames = [
"Msxml2.XMLHTTP.5.0",
"Msxml2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"
];
for(var i=0; i < objectNames.length; i++) {
try {
var requestName = objectNames[i];
new ActiveXObject(requestName);
RequestObject = initRequest(function() { return new
ActiveXObject(requestName); }, true);
} catch(e) {
}
}
}
if (! RequestObject && window.XMLHttpRequest) {
try {
new XMLHttpRequest();
RequestObject = initRequest(function() { return new
XMLHttpRequest(); }, false);
} catch(e) {
}
}
if (! RequestObject) {
alert("Seu browser não esta preparado para o ajax");
Conteúdo disponível sob GNU Free Documentation License.
}
Inclua na página, o seguinte comando para incluir este arquivo :
<script type="text/javascript" src="request.js"></script>
em seguida, você pode utilizar o código, como por exemplo, carregando um texto
de forma sincôna :
var req = new RequestObject();
alert(req.loadText("textoqualer.txt"));
podemos também carregar numa matriz e processar linha a linha:
var req = new RequestObject();
var matriz = req.loadLines("textoqualer.txt");
for(var i=0; i < matriz.length; i++) {
alert(i + ":" + matriz[i]);
}
também é possível carregar de forma assincrona :
var req = new RequestObject();
req.bind({
url:"textoqualquer.txt",
onload:function(rq, id) {
alert(rq.responseText);
}
});
é possível também verificar se ocorreu algum erro, da seguinte forma :
var req = new RequestObject();
req.bind({
url:"textoqualquer.txt",
onload:function(rq, id) {
alert(rq.responseText);
},
onerror:function(rq, id, msg) {
alert('erro = ' + msg);
}
});
• Outros Objetos:
Para referências de outros objetos como DOM (Document Object Model), HTML e SVG,
visite o capítulo on-line deste livro no site: http://pt.wikibooks.org/wiki/Javascript:_Objetos
41
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
CONCLUSÃO:
Espero ter dado uma pequena contribuição para a disseminação desta linguagem script, e
possa tornar a vida mais fácil para programadores que necessitam tornar suas páginas mais
inteligentes.
42
Conteúdo disponível sob GNU Free Documentation License.
Wikibooks, livre pensar e aprender
REFERÊNCIAS NA INTERNET:
• D efinição do Javascript - Definição do javascript pela ecma, orgão europeu de padronização.
• J avascript projeto Mozilla - Referência a tecnologia javascript pelo projeto Mozilla.
• D efinição XMLHttpRequest - Definição de XMLHttpRequest pelo Mozilla.
Javascript Microsoft - Página inicial de javascript na MSDN
• T utorial de JavaScript - em Português e Inglês
• J Script - Versão da Microsoft do JavaScript, usado no Internet Explorer (Em Inglês).
• J avaScript - Página de JavaScript da fundação Mozilla (Em Inglês).
• S tandard ECMA-262 - Especificação oficial do JavaScript (Em Inglês).
• E xemplos do Javascript - no espanhol.
• G uia Javascript da fundação Mozilla um bom guia de javascript em Inglês
• P rogramação baseada em classe vs. Programação baseada em protótipo essencial para quem
está acostumado com o paradigma da programação orientada a objeto, o texto está em
Inglês.
• A rtigo “Javascript” pela Wikipédia.


Comentários