Onde o objeto JS Data é formado. Como posso acessar e lidar com objetos aninhados, arrays ou json? Localização Javascript, Navegador, Objetos de tela

O método de dados no jQuery nos dá a capacidade de associar dados arbitrários a qualquer documento ou objeto JavaScript, que permite que você faça seu código mais breve e legível. Começando com a versão do jQuery 1.4.3 tornou-se possível usar este método para objetos Javascript, além de alterações na faixa nesses dados.

Fundamentos

Vamos começar com o fato de que você pode chamar o método de dados para o objeto JQuery, além de usar a função $ .data () diretamente.

// usando o método: $ ("# mydiv"). Dados ("chave", "média aleatória"); // usando uma função diretamente: $ .data ($ ("mydiv"). Obtenha (0), "chave", "significado arbitrário");

A função de dados é uma implementação de baixo nível, que é realmente usada ao chamar o método. O método do objeto JQuery é muito mais conveniente, também permite que você inclua-se como uma cadeia de chamadas.

Além disso, observe que você precisa transmitir um elemento DOM como o primeiro parâmetro para a função $ .data, e não o objeto JQuery.

O método do objeto requer dois parâmetros - a chave e o valor. A chave é a constante de string e o valor é qualquer estrutura de dados, incluindo as funções de matrizes e objetos. Existe uma sintaxe alternativa em que o objeto pode ser transmitido como um parâmetro:

// você pode transferir o objeto: $ ("# mydiv"). Dados (("nome": "Stevie", "idade": 21)); // o mesmo: $ ("# mydiv"). Dados ("nome", "stevie"). Dados ("idade", 21);

Agora, se você precisar obter dados salvos, você pode ligar para a função de dados passando-o como um parâmetro:

Var thevalue \u003d $ ("# mydiv"). Dados ("idade"); // 21.

O acesso a esses dados está aberto em qualquer lugar no script. Você receberá dados salvos, desde que haja um elemento obtido de acordo com um determinado seletor.

Var thevalue \u003d $ ("div: primeiro"). Dados ("nome"); // Stevie $ ("div: first"). Clique em (função () (alerta (isso) .data ("idade"); // 21));

O jQuery 1.4.3 também possui dados HTML5 armazenados em atributos. Isso significa que, se você tiver um elemento declarado da seguinte forma:

Nesse caso, você pode obter dados do atributo Data-Internal-ID chamando o método $ (êm-# IMG1 ". Dados (" ID interno "), que é, sem dúvida, conveniente para consultas AJAX.

Usando o método de dados para objetos JavaScript

Você pode se surpreender, mas o método de dados também pode ser usado para objetos JavaScript convencionais. Esta funcionalidade apareceu oficialmente em JQuery 1.4.3.

Var myobj \u003d (); $ (Myobj) .data ("cidade", "Springfield");

O exemplo dado é realmente criar uma propriedade da cidade para um determinado objeto. Por que não escrever para myobj.city \u003d "Springfield" apenas? E a diferença é que o método de dados adiciona vários eventos úteis que simplificam o trabalho com esse objeto. Por exemplo:

Var progressoBar \u003d (); $ (Progressarbar) .bind ("setData", função (E, tecla, valor) (chave (chave) (caso ": $ (" # progresso "). Largura (valor +"% "); $ (" # percentual "). Texto (valor +"% "); quebra; caso" cor ": $ (" progresso "). CSS (" cor ", valor); quebra; caso" habilitado ": $ (" progresso ") .toggleclass ("ativo", valor); quebrar;)))); $ (Progressarbar) .data ("habilitado", true) .data ("por cento", 21) .data ("cor", "verde"); Console.log (progressBar.enabled);

No exemplo dado, usamos o método de dados para criar a API mais simples com a qual podemos atualizar o item.

Há mais dois eventos que podem ser usados \u200b\u200bpara o objeto JavaScript:

  • getData - gatilhos antes de ler dados. Você pode usá-lo para evitar que os dados obtidos. Por exemplo, para recalcular o valor.
  • chanderata - desencadeia quando os dados são instalados ou alterados. Este evento é usado no plugin JQuery DataLink. Com ele, você pode associar os dados do formulário ao objeto JavaScript e trabalhar com os campos do formulário, conforme as propriedades do objeto.

Por trás das cenas

jQuery cria um objeto vazio (para curioso, é chamado $ .Cache), que é o repositório de todos os valores que você economiza usando o método de dados. Cada elemento do DOM, que é usado com o método de dados é atribuído um identificador exclusivo, que é a chave para acessar os dados no objeto $ .CACHA.

o jQuery armazena não apenas os dados do usuário neste cache, dados internos, manipuladores de eventos que você pendura usando as funções LIVE (), BIND () e Delegate () também estão lá. Usar o armazenamento central faz jquery mais confiável.

Conclusão

O método de dados é apenas um dos muitos recursos do jQuery, o que facilita a vida dos desenvolvedores da Web. Em combinação com outras características da biblioteca, complementa a base sólida para a qual podemos confiar.

A lição considerará o tópico de objetos Javascript. Será sobre objetos de usuário: Criando um objeto no JavaScript, trabalhe com propriedades e métodos de objeto, bem como protótipos de JavaScript. Resumidamente descreve o trabalho com objetos Localização, Navegador, Tela.


Site do site de tarefas - recebendo usuários de habilidades práticas para trabalhar com o idioma. Obras de laboratório Por javascript, delineado à medida que sua complexidade aumenta e suportada por soluções visuais, permitirá que você perceba facilmente o material estudado e aprenda como criar páginas da Web "ao vivo".


Em JavaScript existem vários tipos de objetos:

  • objetos embutidos
  • objetos do navegador.
  • objetos que o programador cria independentemente (personalizado)

Objetos internos são objetos predefinidos, a maioria já foi considerada em lições anteriores.

Um objeto de navegador em javascript será discutido em novas lições.

E agora a hora de se encontrar com objetos personalizados em JavaScript.

  • Objeto (objetos)
  • Número (processamento de números)
  • String (processamento de linha)
  • Array (matrizes)
  • Matemática (fórmulas matemáticas, funções e constantes)
  • Data (trabalho com datas e tempo)
  • Regexp.
  • Global (seu infinito, nan, indefinido) propriedades
  • Função.

JavaScript criando objetos

Existem duas maneiras de criar objetos:

  1. Usando um inicializador de objeto (ou criando coleções de objetos)
  2. Usando o Designer de objetos ()
  1. Criando coleções
  2. var_ object_name \u003d novo objeto (); Nome do pacote. Software \u003d valor; // ponto notation_name_name ["propriedade"] \u003d valor; // notação baseada

    Importante: Vale a pena notar que é impossível usar uma figura como um valor: myobg.rost \u003d 2 // não pode! myobg.rost \u003d "2" // você pode

    Exemplo: Crie o objeto MyBrowser com propriedades de nome ) e versão (valor " 9.0 »)


    ✍ Solução 1:

    var mybrowser \u003d novo objeto (); mybrowser.name \u003d "Microsoft Internet Explorer."; MyBrowser [" versão "] \u003d" 9.0 ";

Exemplo: Crie dois objetos de coleta (carro e moto) com propriedades de cor e marca. Exibir o valor da propriedade cor No objeto carro e propriedades marca No objeto moto..


✍ Solução:
    Var carro \u003d novo objeto (); carro.color \u003d "branco"; carro.maxsepeed \u003d 220; carro.brand \u003d "Nissan"; Document.write ("Máquina Cor:" + Car.Color); Var moto \u003d (cor: "azul", cavalos de potência: 130, marca: "yamaha"); Document.write ( "Motocicleta fabricante:" + Moto.brand);

    var carro \u003d novo objeto (); carro.color \u003d "branco"; carro.maxsepeed \u003d 220; carro.brand \u003d "Nissan"; Document.write ("Máquina Cor:" + Car.Color); Var moto \u003d (cor: "azul", cavalos de potência: 130, marca: "yamaha"); Document.write ("fabricante de motocicleta:" + moto.brand);

Ciclo "para cada" para quando se trabalha com objetos em JavaScript

Um pouco sobre este design já foi dito.
O ciclo para o ciclo no JavaScript é projetado para passar por matrizes, coleções e objetos.

Considere um exemplo de uso para em:

1 2 3 4 5 6 7 8 var mybrowser \u003d novo objeto (); mybrowser.name \u003d "Microsoft Internet Explorer"; MyBrowser ["versão"] \u003d "9.0"; Para (var um em mybrowser) (alerta (a); // monta as propriedades do objeto MyBrowser. Escrever nome, versão Alerta (myBrowser [A]); // dá os valores das propriedades }

var mybrowser \u003d novo objeto (); mybrowser.name \u003d "Microsoft Internet Explorer"; MyBrowser ["versão"] \u003d "9.0"; Para (alerta (a); // limpa as propriedades do objeto MyBrowser. Nome, alerta de versão (myBrowser [A]); // valores de propriedade emitidos)

  • Criando classes construtores
  • Criar classes construtores é realizada em duas etapas:

    1. primeiro cria uma aula usando o designer;
    2. em seguida, um novo objeto baseado em construtor é criado.

    Criando uma classe de objetos usando um designer (criando designers de classes):

    function_name_blass_name (SV-B1, SV-CO2) (este.sv-b1 \u003d valor; isto. SB-C2 \u003d valor;)

    Criando um novo objeto com base na aula de objeto:

    var_ object_name \u003d new_name_name ("value_sv-va1", "value_sv2");

    var nome_name \u003d new_name_name (); o nome_name. MSB-B1 \u003d "Value_SV-VA1"; _name_name.cv-in2 \u003d "value_sv-va2";

    O nome da classe do designer é costumeiro escrever da letra maiúscula!


    Considere um exemplo:

    Exemplo: Criando um construtor para classe de objeto e criando um objeto com base nesta classe: Crie um objeto MyBrowser com propriedades de nome. "Microsoft Internet Explorer") e versão (valor " 9.0 »)

    Decisão aberta

    1 2 3 4 5 6 7 8 Navegador de função (nome, versão) (isto .name \u003d nome; esta .version \u003d versão;) var myBrowser \u003d novo navegador ("Microsoft Internet Explorer", "9.0"); Alerta (mybrowser.name); Alerta (mybrowser.versão);

    browser de função (nome, versão) (este.name \u003d nome; esta.version \u003d versão;) var myBrowser \u003d novo navegador ("Microsoft Internet Explorer", "9.0"); Alerta (mybrowser.name); Alerta (mybrowser.versão);

    Então, compare mais uma vez com a primeira maneira de criar objetos:

    // Coleção Objeto Var MyBrowser \u003d (Nome: "Microsoft Internet Explorer", versão: "7.0"); Alerta (mybrowser.name); Alerta (mybrowser.versão); // próxima linha é inaceitável! Var mybrowser1 \u003d novo mybrowser ("mozillafirefox", "3.5"); // Não é verdade! !!

    Importante: No caso de criar uma coleção de objetos, você não pode criar uma classe de pareinha, pois esta não é uma aula


    Js 6_1 tarefa. Crie um funcionário do objeto, que contém informações sobre os funcionários de alguma empresa, como nome, departamento, telefone, salário (use a função Designer e a palavra-chave deste). Crie uma instância de objeto

    Acesso às propriedades do objeto em JavaScript

    Nome do pacote. Nome de qualidade.

    1 2 Agent007.miya \u003d "Bond"; Alerta (agent007.

    agent007.miya \u003d "Bond"; Alerta (agent007.

    Qual é a propriedade padrão

    A função Designer permite que você insira o objeto de objeto padrão. Essas propriedades serão cada instância criada do objeto

    1 2 3 4 5 6 7 8 9 10 Estudante de função (nome, telefone) (este .name \u003d nome; este .phone \u003d "22-22-22"; // propriedade padrão! ) Var Ivanov \u003d novo estudante ("Ivan", "33-33-33"); Alerta (ivanov.name); // emitido "Ivan" alerta (Ivanov.Phone); // emitirá "22-22-22" ivanov.phone \u003d "33-33-33"; // alterar o padrão SV-IN Alerta (ivanov.phone); // vai dar "33-33-33"

    estudante de função (nome, telefone) (este.name \u003d nome; este.Phone \u003d "22-22-22"; // propriedade padrão!) Var Ivanov \u003d novo aluno ("ivan", "33-33-33") ; Alerta (ivanov.name); // emitido "Ivan" alerta (Ivanov.Phone); // emitirá "22-22-22" ivanov.phone \u003d "33-33-33"; // Alteramos o alerta padrão (Ivanov.phone); // vai dar "33-33-33"

    Adicionando propriedades à classe de objetos

    O valor da propriedade pode ser adicionado para:

    • instância específica do objeto;
    • objeto de classe inteiro

    Adicionando propriedades para concreto (instância) objeto:

    nome do pacote. Nome de Qualidade \u003d valor

    ivanov.biology \u003d "Excelente";

    Importante: No exemplo, a propriedade é definida para um objeto específico e não para a classe de objeto!

    Adicionando propriedades para a aula Objetos:

    nameklass.prototype. Nome de Qualidade \u003d valor

    Student.prototype.biology \u003d "Excelente";

    Importante: No exemplo, a propriedade (padrão) é definida para a classe de objeto! Isso é feito usando protótipo; protótipo- Objeto Definindo a estrutura

    1 2 Student.Prototype.Email \u003d " [E-mail protegido]"; alerta (ivanov.email); // emitirá " [E-mail protegido]"

    Student.Prototype.Email \u003d " [E-mail protegido]"; alerta (ivanov.email); // emitido" [E-mail protegido]"

    Exemplo: Um exemplo da saída de todas as propriedades de um objeto com valores

    1 2 3 4 5 6 7 8 9 Var Summertour \u003d (Turquia: 2000, Espanha: 3000, Egito: 1000); Var opção; Para (opção no Summertour) (document.write (opção + ":" + summertour [opção] + "
    " ) ; }

    var Summertour \u003d (Turquia: 2000, Espanha: 3000, Egito: 1000); Var opção; Para (opção no Summertour) (document.write (opção + ":" + summertour + "
    "); }

    Protótipos JavaScript (Introdução)

    Considere um exemplo de como as aulas JavaScript são construídas em protótipos

    Exemplo: Crie um carro de classe de objeto (carro) com três propriedades: nome (nome), modelo (modelo), cor (cor). Crie uma instância de classe com propriedades específicas. Então, através da instância criada, adicione para a aula Propriedade do proprietário (proprietário) com um significado padrão específico ( Ivanov.). Exibe todos os valores das propriedades da instância criada

    Carro de função (nome, modelo, cor) ( / * Designer de objeto de carro * / Este .NAME \u003d nome; este .Model \u003d modelo; esta. cor \u003d cor; ) Var MyCar \u003d carro novo; mycar.name \u003d "mers"; Mycar.model \u003d "600"; Mycar.color \u003d "verde"; Carro.prototipo .Owner \u003d "ivanov"; / * Adicionar uma nova propriedade * / Alerta (mycar.name + "+ mycar.model +" "+ mycar.color +" "+ mycar.owner);

    carro de função (nome, modelo, cor) (/ * Carro designer Carro * / this.name \u003d nome; este.Model \u003d modelo; esta.color \u003d cor;) var mycar \u003d carro novo; mycar.name \u003d "mers"; Mycar.model \u003d "600"; Mycar.color \u003d "verde"; Car.prototipo.owner \u003d "ivanov"; / * Adicionar uma nova propriedade * / Alerta (mycar.name + "" + mycar.model + "" + mycar.color + "" + mycar.owner);

    Js 6_2 tarefa. Para definir o JS 6_1 através do funcionário ECCastern criado pelo objeto de funcionário, adicione um novo endereço de propriedade à classe de objeto

    Métodos Javascript de Objetos

    Criando um método de objeto

    Exemplo: Adicionar ao Método do Construtor de Objeto do Navegador SobreBrowser, que exibirá informações sobre as propriedades deste objeto para a tela do navegador.

      1 2 3 4 5 6 7 8 9 10 11 12 13 Função ShowBrowser () (Document.Write ("Observer:" + Este .Name + "" + Este .Version);) Browser de função (nome, versão) (este .name \u003d nome; esta .version \u003d versão. \u003d showbrowser;) var myBrowser \u003d novo navegador ("Microsoft Internet Explorer", 8.0); mybrowser.aboutbrorowser ();

      função showbrowser () (document.write ("Observer:" + this.name + "" + this.version);) Browser de função (nome, versão) (este.name \u003d nome; this.version \u003d version; this.estcrowser \u003d showbrowser;) var myBrowser \u003d novo navegador ("Microsoft Internet Explorer", 8.0); mybrowser.aboutbrorowser ();

    1. Os métodos de objeto são criados com base na função e adicionados ao construtor de classe

    navegador de função (nome, versão) (este.name \u003d nome; esta.version \u003d versão; isso.aboutbrowser \u003d função () (document.write ("Observer:" + nome + "" + versão);)) Var MyBrowser \u003d Novo navegador ("Microsoft Internet Explorer", 8.0); mybrowser.aboutbrorowser ();

    Js 6_3 tarefa. Crie uma classe de objetos (Tour) para o trabalho de uma empresa de viagens com o método de contar o custo de uma viagem com base em: número de homem * número de dias * tarifa do país. Crie uma instância do objeto TurkeyTour com propriedades. Exibe todas as propriedades de um objeto na tela. Cálculo do método de objeto Criar função com base na função.

    Protótipos JavaScript (Prototype) de objetos embutidos

    Adicionando propriedades e métodos para objetos internos (protótipo)

    Javascript.- linguagem OOP (programação orientada a objetos) com base em protótipos.
    Protótipo - Objeto Definindo a estrutura

    Considere o trabalho com protótipos sobre o exemplo:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 / * Protótipo Mudança * / // Adicionando a propriedade padrão ao objeto interno String .prototipo .color \u003d "preto"; // Adicionando (alteração) do método para o objeto interno String .prototipo .write \u003d stringwrite; Função stringwrite () (document.write (" "); document.write (este .tostring ()); document.write (" ") ; } // use a classe modificada Var s \u003d nova string ("é uma string"); s.color \u003d "vermelho"; s.write ();

    / * Alterar o protótipo * / // Adicionando a propriedade padrão ao objeto String.Prototype.Color \u003d "preto"; // Adicionando (alteração) do método para o objeto String.Prototype.Write \u003d stringwrite; Função stringwrite () (document.write (" "); Document.write (este.To.String ()); document.write ("");) // use a classe modificada Var S \u003d nova string (" é uma string "); s.color \u003d" vermelho "; s.write ();

    Importante: Objeto matemático não pode adicionar propriedades e métodos


    Js 6_4 tarefa. Preencha o código do programa para executar a tarefa: para a classe de string interna Add PrintMe (), que exibe a palavra "Hooray!" Como cabeçalho (tag h ...) especificado pelo usuário do usuário ().
    O nível de cabeçalho (1, 2 ... 6) pode ser adicionado como as propriedades da classe de string.
    Lembre-se de como as tags de headlov devem se parecer com HTML:

    Título

    Código completo:

    1 2 3 4 5 6 7 8 String .prototipo .uroven \u003d "1"; ... Função Printzagolovok () (...) var s \u003d novo ...; ...

    String.prototype.uroven \u003d "1"; ... Função Printzagolovok () (...) var s \u003d novo ...; ...

    Resumo: Compare mais duas opções para usar objetos de usuário em JavaScript:

    1. Criando coleções
    2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var mybook \u003d novo objeto (); Mybook.title \u003d "(! Lang: livro" ; myBook.price = "200" ; alert(myBook[ "title" ] ) ; !} // 1ª opção Adicionar à propriedade alerta (mebook.price); // 2ª opção Adicionar às propriedades Função MyBookshow () (para (var i em mybook) (document.write (i + ":" + mybook [i] + "
      " ) ; // grande propriedade. )) Mybook.show \u003d mybookshow; Mybook.show ();

      var mybook \u003d novo objeto (); Mybook.title \u003d "(! Lang: livro"; myBook.price="200"; alert(myBook["title"]); // 1-й вариант обращения к свойствам alert(meBook.price); // 2-й вариант обращения к свойствам function myBookShow() { for (var i in myBook) { document.write(i+": "+myBook[i]+"!}
      "); // Big Property)) mybook.show \u003d mybookshow; mybook.show ();

    3. Criando classes construtores
    4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Mybook funcional (título, preço) ( // definição de propriedades este .title \u003d título; este .Price \u003d preço; // Definição do método este .Show \u003d show; Função Show () (document.write ("Title:" + .title); document.write ("Preço:" + Este .Price);)) Var livro \u003d novo mybook ("livro", 200); Livro.show ();

      função Mybook (Título, Preço) (// Definição de Propriedades deste.Title \u003d Title \u003d This.Price \u003d Preço; // Definição deste.Show \u003d Mostrar método; Função Mostrar (Document.Write ("Title:" + isto. título); document.write ("Preço:" + este.Price);)) Var livro \u003d novo mybook ("livro", 200); Livro.show ();\u003e Vá para a página inicial</ A\u003e. <li \u003e. ... </ Li \u003e. <li \u003e. ... </ Li \u003e.

    5. Vá para a página inicial
    6. ...
    7. ...
    8. * Complicado: número de itens de menu, seus nomes e uRL. precisa solicitar um usuário

      Dica:para exibir nas linhas Mostrar (), use o método document.write ()

      Localização Javascript, Navegador, Objetos de tela

      Navegador JavaScript.

      Considere o uso do objeto Navegator em JavaScript no exemplo:

      Exemplo: Escreva um recurso que seja exibido:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Var opção; // a saída de todas as propriedades do objeto Navegador Para (opção no Navigator) (document.write (opção + ":" + navegador [opção] + "
    " ) ; } // função das propriedades específicas do objeto Navegador Função userdetails () (document.write ( "

    Nome do navegador: "
    + Navegador.useragent + "
    "); document.write (" Idioma do navegador: "+ navegador.Language +"
    "); document.write (" Nome do sistema operacional: "+ navegador.ocpu +"
    "); document.write ( "São cookies incluídos:" + Navegador.cookieenabled + "
    "); document.write ( "A Internet está conectada:" + navegador.nline + "
    ");) Detalhes do usuario ();

    var opção; // Conclusão de todas as propriedades do Navegador para objeto (opção no Navigator) (document.write (opção + ":" + navegador + "
    ");) // Função das propriedades específicas da função Navigator UserDetails Object () (document.write ("

    Nome do navegador: "+ navegador.useragent +"
    "); document.write (" Idioma do navegador: "+ navegador.Language +"
    "); document.write (" Nome do sistema operacional: "+ navegador.ocpu +"
    "); Document.write (" são cookies incluídos: "+ navegador.cookieenabled +"
    "); Document.write (" é a Internet conectada: "+ navegador.nline +"
    ");) Detalhes do usuario ();

    Tela de objeto JavaScript.

    Considere usar o objeto de tela em JavaScript sobre o exemplo:

    função userDetails () (document.write ("resolução:" + tela.Width + "x" + tela.Height + "
    "); document.write (" profundidade de cor: "+ tela.colordepth +" x "+ tela.Height +"
    ");) Detalhes do usuario ();

    Objeto de localização de javascript.

    Considere o uso do objeto de localização em Javascript sobre o exemplo:

    1 2 3 4 Função userdetails () (document.write ( "Endereço de página enviado:" + location.href + "
    ");) Detalhes do usuario ();

    função userDetails () (document.write ("Página baixada do endereço:" + location.href + "
    ");) Detalhes do usuario ();

    CONCLUSÕES:

    • Usando expressões com a nova palavra-chave, você pode criar instâncias de objetos, ou seja, suas encarnações específicas.
    • Além disso, graças à propriedade do protótipo JavaScript, você tem a capacidade de adicionar novas propriedades e métodos inventados pelo usuário e ausente nos objetos internos de origem.
    • Criar objetos pode ser usado para criar bancos de dados.

    Neste capítulo:

    Em JavaScript, há um número de objetos predefinidos que podem ser usados \u200b\u200bao escrever scripts. Estes incluem objetos como matriz, booleano, data, função, matemática, número, regexp e string, bem como o objeto de objeto primitivo. DENTRO versões iniciais A linguagem do documento também foi incluída nele (janela, documento), mas agora eles são excluídos do kernel. linguagem javascript.e consulte a definição do modelo de objeto do documento (DOM), que será discutido posteriormente. No entanto, algumas propriedades desses objetos (documento e janela) já estão familiarizadas para nós.

    No entanto, de volta aos objetos Javascript integrados em conceito contemporâneo. Todos os objetos incorporados, exceto matemática e data, têm propriedades como construtor e protótipo. Eles são usados \u200b\u200bpara adicionar novas propriedades a objetos existentes e são descritos no contexto do objeto de função.

    Objeto de objeto

    Todos os objetos de linguagem JavaScript são os herdeiros do objeto de objeto. Consequentemente, todas as propriedades e métodos deste objeto também estão disponíveis em qualquer outro objeto JavaScript.

    Objeto é definido apenas 2 propriedades - construtor e protótipo. A propriedade do construtor determina a função que cria o protótipo de objeto - é a função inteira de toda a função e não apenas seu nome. Em outras palavras, consideramos a opção quando algum objeto de teste é definido e uma instância deste objeto TMP é criada:

    Teste de função (versão) (esta.version \u003d versão;) TMP \u003d novo teste (1);

    Nesse caso, usando a propriedade Construttor, você pode ver o código-fonte do objeto de teste (Fig. 4.6):

    Alerta (tmp.constructor);

    FIG. 4.6.

    Para esta propriedade, no entanto, há um limite: não é possível exibir o código dos objetos de linguagem JavaScript integrados: Nesses casos, as informações de saída são limitadas pelo nome da função de protótipo e string "".

    Quanto à propriedade Prototype, permite acessar a função Protótipo do objeto atual. Usar esta propriedade torna possível alterar as características do protótipo do objeto. Por exemplo, você pode adicionar uma nova propriedade para o objeto Tipo de teste usando a propriedade Prototype:

    Teste.prototype.comment \u003d "Novo comentário de propriedade";

    Agora todos os objetos do teste, incluindo a instância TMP já criada, terão a propriedade de comentários, que é fácil de se certificar de que aplicar essa inspeção:

    Alerta (tmp.comment);

    Além disso, os objetos javascript integrados também podem atualizar. Por exemplo, se precisarmos adicionar aos matrizes, tal propriedade como uma descrição, você poderá fazer isso (claro, apenas dentro da estrutura do script atual!), Referindo-se ao protótipo do objeto de matriz e adicionando o correspondente propriedade para ele:

    Array.prototype.description \u003d "";

    Quanto aos métodos, há vários deles para o objeto objeto - até 5 peças. Isso é tosource, tostring, assistir, não assistido e valorof, sua pequena descrição Localizado na Tabela 4.10.

    Os métodos de tostring e valueOf são aplicáveis \u200b\u200ba quase todos os objetos javascript incorporados e, por via de regra, são invocados pelo intérprete automaticamente quando a necessidade surge a ser convertida. Quanto ao método de Tosource, de fato, simplesmente executa o trabalho para a propriedade da construção.

    Os restantes métodos de relógio e não assistentes - expansões de marca introduzidas no Netscape 4 Browser (agora são suportadas pelo Mozilla), são projetadas para depurar cenários. Como no âmbito desta publicação, a questão dos programas de depuração não é considerada, então não faz sentido descrever esses métodos. Mas apenas no caso, você pode dar uma nota que no macaco do mar (mas não no navegador do Firefox) há um depurador de cenário - debugger javascript.

    Matriz de objeto.

    Variáveis \u200b\u200bmassivas contêm conjuntos ordenados de valores, para conveniência apresentada na forma de uma variável. Já enfrentamos matrizes mais de uma vez (lembre-se pelo menos arrays de argumentos), agora é hora de lidar com todas as suas propriedades e complexidades de aplicação.

    Ao contrário de outras linguagens de programação, o JavaScript não tem esse tipo de dados como uma matriz. Mas esta restrição é devido ao fato de que é possível usar um objeto de matriz predefinido - array. Para criar uma matriz de objeto, você pode usar uma das seguintes opções de sintaxe:

    Namemassiva \u003d nova matriz (elemento1, elemento2, ... elemento) namemassiva \u003d nova matriz (lenssage)

    No primeiro caso, todos os componentes da matriz estão listados, no segundo - simplesmente indica o número de elementos. Também é permitido usar literais ao declarar uma matriz:

    Computadores \u003d ["PC", "Mac", "Sun"];

    Para preencher os elementos de uma matriz por valores, como em geral, um índice de elemento pode ser usado para preencher itens. Deve-se ter em mente que o índice dos elementos da matriz começa com o zero:

    Var cores \u003d nova matriz (3); cores \u003d "vermelho"; Cores \u003d "azul"; cores \u003d "verde";

    Muitas vezes, é conveniente usar a possibilidade de preencher a matriz diretamente quando um anúncio pela linguagem fornecida pela linguagem do JavaScript.

    Var cores \u003d nova matriz ("vermelho", "azul", "verde");

    Para descobrir o comprimento da matriz (o número de elementos da qual a matriz consiste), use a propriedade de comprimento:

    Var Numcolors \u003d cores.Length;

    Além das propriedades do comprimento, o JavaScript também fornece uma série de outras propriedades e métodos para trabalhar com matrizes. Em particular, as propriedades do objeto da matriz, além do comprimento, incluem Universal para todos os objetos construtores e protótipos, bem como destinado a usar matrizes juntamente com expressões regulares das propriedades de índice e entrada.

    Quanto aos métodos, além da tosource padrão, a tostring e o valorof, as matrizes são dotadas com dez mais propriedades listadas na Tabela 4.11.

    Tabela 4.11. Métodos do objeto Array
    MétodoDescrição
    concha.Combina dois arrays e retorna um novo
    juntar.Combina todos os elementos de uma matriz em uma linha
    popRemove o último elemento da matriz e retorna
    empurrar.Adiciona um ou mais elementos ao final da matriz e retorna um novo comprimento.
    marcha réMove os elementos da matriz de tal forma que o primeiro se torna o último, e vice-versa
    mudança.Remove o primeiro elemento da matriz e retorna
    fatiar.Remove parte dos elementos da matriz e retorna uma nova matriz
    emendaAdiciona e (ou) remove um elemento da matriz
    ordenar.Classifica os elementos do alfabeto da matriz
    não é ignorado.Adiciona um ou mais elementos ao início da matriz e retorna um novo comprimento da matriz (no MSIE 5.5 e 6 Este método não retorna nada)

    Considere alguns métodos em mais detalhes. Então, usando o método Concat, você pode combinar 2 array em um:

    Var A \u003d nova matriz ("A1", "A2"); var b \u003d nova matriz ("B1", "B2"); var ab \u003d a.concat (b);

    Aqui, a variável AB se tornará uma matriz contendo todos os 4 elementos de dois arrays colados. Se agora a esta matriz para aplicar o método de junção, o resultado será uma string contendo todos os elementos deste array listados através da vírgula:

    Str \u003d ab.join (); // Receber str \u003d "A1, A2, B1, B2"

    Quanto ao método pop, aplicando-o na mesma matriz, obteremos uma resposta em "B2", e a matriz será cortada para três primeiros valores. E o método Shift, pelo contrário, retorna o primeiro elemento (no nosso caso, "A1") e faz o mesmo com uma matriz com a única diferença que os elementos restantes se movem para frente.

    Para entender melhor como esses e outros métodos estão trabalhando com matrizes, nos voltamos para o próximo exemplo mostrado na Listagem 4.3.

    Listagem 4.3. Trabalhando com arrays.

    O mesmo exemplo pode ser visualizado no arquivo Array.html, você pode visualizar todos os resultados de seu trabalho no navegador (consulte a Fig. 4.7).

    FIG. 4.7. O resultado da aplicação do método de emenda: Array de devolução e alteração

    Arrays também pode ser multidimensional, isto é. Um elemento da matriz pode ser outra matriz. Nesse caso, a seguinte sintaxe é usada para se referir ao elemento da matriz:

    Array2d \u003d "elemento 0,0" array2d \u003d "elemento 0.1" ... array2d [n] [n] \u003d "elemento n, n"

    Um exemplo de preenchimento e saída de uma matriz bidimensional pode ser encontrado no arquivo Array.html, há também um exemplo interativo para quase todos os métodos da matriz.

    Objeto booleano.

    Objeto booleano - shell para o tipo de dados do mesmo nome. Para determinar o tipo de objeto Boolean, a seguinte sintaxe é usada:

    Booleanobj \u003d novo booleano (valor)

    Aqui, o valor é uma expressão inicializando que, se necessário, será dada a verdadeira ou falsa. Se você especificar tal valor como 0, , false, nan, indefinido ou uma string vazia, o resultado da inicialização do tipo de objeto Boolean será falso e, no caso de qualquer outro valor - verdadeiro.

    Não confunda os valores lógicos primitivos de verdadeiro e falso com os verdadeiros tipos de dados e objetos falsos do objeto booleano. Por exemplo, se você declarar a variável X e atribuir o valor do objeto booleano, inicializado usando o valor falso, ele ainda será o valor da verdade (true):

    X \u003d novo booleano (falso); // ao comparar se (x) nós ficamos verdadeiros

    Ao mesmo tempo, se você simplesmente atribuir a variável de tipo de dados primitiva do false, ele o receberá:

    X \u003d falso; // ao comparar se (x) nós ficamos falsos

    Quanto ao uso desse objeto, na prática, ele pode ser usado como uma função para converter valores de qualquer outro tipo para booleano:

    A \u003d 100; x \u003d booleano (a); // x receberá verdadeiro se (x) (...)

    Mas, na verdade, você dificilmente pode fazê-lo, porque, se necessário, essas conversões são feitas pelo intérprete JavaScript automaticamente - no exemplo, seria possível escrever imediatamente "se (a)", e a transformação é necessária Neste caso será feito de qualquer maneira.

    Data do objeto.

    Para trabalhar com datas na linguagem JavaScript, não é fornecido para um tipo especial de dados, no entanto, como no caso de matrizes, há um objeto de dados especial. Para criar a data da data, você pode usar qualquer uma das seguintes maneiras:

    Nova Data () Nova Data (Millisecond) Nova Data ("Date_V_VId_Stalk")

    No primeiro caso, o objeto de data é criado com o horário atual, no segundo - deve ser indicado pelo número de milissegundos que se passaram desde 1º de janeiro de 1970. Se a data for especificada no formulário de uma string, deve ser o tipo "FEB 28, 2005". Também é permitido definir uma data usando valores inteiros para o ano, mês, dia, etc.:

    Nova data (ano, mês, dia [, hora, minuto, segundo, milissegundo])

    Naturalmente, neste caso, a especificação de segundos e milissegundos pode ser evitada, especialmente porque os milissegundos nem sequer apoiados em versões antigas dos navegadores. Além disso, em JavaScript à versão 1.3, as datas anteriores não são suportadas em 1º de janeiro de 1970. Quanto ao formato dos valores, que indicam a linha, o ano é qualquer número de 4 dígitos (se você especificar um 2 dígito, ele adicionará 1900 a ele), número do mês - de 0 (janeiro) a 11 (Dezembro), e no dia - 0 a 31. Assim, os valores de tempo também são limitados: por horas, será um todo de 0 a 23, por segundos e minutos - de 0 a 59 e para milissegundos - de 0 a 999. Para que, como o valor da data do tipo de objeto, indique em 9 de maio de 2005, você deve escrever:

    Var qualquer dia \u003d nova data (2005, 5, 9);

    E se você precisar obter o valor atual de data e hora, nenhum parâmetro é necessário em tudo:

    Var agora \u003d nova data ();

    Começando com o JavaScript 1.3, a faixa de datas pode ser localizada dentro de 100 milhões de dias antes e depois do 01/01/1970 (no total, é quase 550 mil anos!). Na mesma versão, a exigência sempre apareceu para indicar um ano em um formato de quatro dígitos, a fim de evitar erros relacionados à mudança de séculos.

    Para trabalhar com o objeto de data, há 2 propriedades - construtor e protótipo, bem como muitos métodos permitindo que você destaque a parte desejada da data (ano, mês, número, tempo), envie-o em um formato ou outro formato, etc. Todos estão listados na Tabela 4.12.

    Tabela 4.12. Métodos do objeto de data
    Método e sua sintaxeDescrição
    getDate ()Retorna o dia do mês na hora local
    getday ()Retorna o dia da semana na hora local
    getfulyear ()Retorna o ano na hora local
    gethours ()Retorna a hora atual (relógio) na hora local
    getMilliseconds ()Retorna a hora atual (milissegundo) na hora local
    getMinutes ()Retorna a hora atual (minutos) na hora local
    gettenth ()Retorna a hora atual (mês) na hora local
    getseconds ()Retorna a hora atual (segundos) na hora local
    consiga tempo ()Retorna a hora atual na forma de um número na hora local
    getTimeZoneOfSet ()Retorna o deslocamento do tempo em minutos em Greenwich Tempo na hora local
    getutcdate ()Retorna o dia do mês no tempo universal
    getutcday ()Retorna o dia da semana no tempo universal
    getutclyear ()Retorna um ano no tempo universal
    getutchours ()Retorna a hora atual (relógio) no tempo universal
    getutcmilliseconds ()Retorna a hora atual (milissegundos) no tempo universal
    getutcminutes ()Retorna a hora atual (minutos) no tempo universal
    getutcmonth ()Retorna a hora atual (mês) no tempo universal
    getutcseconds ()Retorna a hora atual (segundos) no tempo universal
    getyear ()Desatualizado. Retorna o ano em um formato curto (dois dígitos) no tempo universal
    analisar (line_dates)Retorna o número de milissegundos que se passaram desde 1º de janeiro de 1970 para o valor especificado no parâmetro na hora local
    setDate (dia)Define o dia do mês na hora local
    setfulyear (ano)Define o ano na hora local
    sethours (relógio)Define o tempo (relógio) na hora local
    setMilliseconds (milissegundos)Define o tempo (milissegundo) na hora local
    setiminutos (minutos)Define o tempo (minutos) na hora local
    setMonth (mês)Define o tempo (mês) na hora local
    setseconds (segundos)Define o tempo (segundos) na hora local
    settatiário (milissegundos)Define o tempo em milissegundos para uma data específica na hora local
    setutcdate (dia)Define o dia do mês no tempo universal
    setuclyear (ano)Define o ano no tempo universal
    setchours (relógio)Define o tempo (relógio) no tempo universal
    SetutcMilliseconds (milissegundos)Define o tempo (milissegundo) no tempo universal
    setutcminutes (minutos)Define o tempo (minutos) no tempo universal
    setutcmonth (mês)Define o tempo (mês) no tempo universal
    setutseconds (segundos)Define o tempo (segundos) no tempo universal
    sETYEAR (ano)Desatualizado. Define o ano na hora local, como o valor do ano, digamos um formato de dois dígitos
    togmtstring ()Desatualizado. Converte a data para uma string correspondente ao tempo de Greenwich
    tolocalestring ()Retorna a data e a hora na forma de uma string correspondente ao formato das instalações do sistema local
    tolocaledatating ()Retorna a data no formulário de uma string correspondente ao formato das instalações do sistema local
    tolocaletimestring ()Retorna o tempo na forma de uma string correspondente ao formato das instalações do sistema local
    tosource ()Retorna a data em que o objeto na visão literal
    para sequenciar ()Retorna o objeto de data na exibição de linha
    tutcstring ()Converte a data para uma string em um formato correspondente ao tempo universal
    UTC (parâmetros)Retorna o número de milissegundos que se passaram desde 1º de janeiro de 1970 no tempo universal. Como os parâmetros indicam um ano, mês e dia, bem como (opcional) - horas, minutos, segundos e milissegundos
    valor de ()Retorna a data na forma de um valor primitivo

    Apesar de uma abundância de métodos, é suficiente trabalhar com o objeto de data: você só deve entender o princípio dos nomes dos métodos:

    • os métodos que começam com "SET" são projetados para definir a data e a hora em objetos da data;
    • os métodos que começam com "get" são projetados para extrair a data, a hora ou suas partes a partir de objetos de data;
    • métodos começando com "para" devolver a data e a hora (ou suas partes) na forma de valores de string;
    • os métodos contendo "UTC" diferem de semelhantes apenas ao fato de que eles trabalham com um formato de tempo universal (i.e. Exibe a hora de acordo com Greenwich, levando em conta o deslocamento relativo ao fuso horário atual).

    Assim, permanece apenas para adicionar ao nome obter ou definir a parte necessária da data ou hora para obter ou instalar o parâmetro desejado, se necessário, usando UTC. Bem, quando é necessário para obter o resultado na forma "humana", use métodos para. Você também deve lembrar que apenas funções de formato completo devem sempre ser usadas para trabalhar com o ano (isto é, completo ou getutculyear, não getyear).

    Uma vista de string da data em JavaScript tem o seguinte formato:

    Double Month Number Year Watch: Minutos: segundos GMT ± offset

    Visualmente veja a visualização das datas e, ao mesmo tempo, e considere como ela funciona como a tostring, considere o que todos retornam à conclusão. Ao mesmo tempo, a primeira coisa que pode vir à mente para ver o trabalho de uma função é usar a saída de texto para o documento:

    Document.writeln (DateObject.ToString ()); Document.writeln (DateObject.togmtting ()); // etc.

    Mas, de fato, já que existem muitas funções, seria bom escrever bem que a ação foi realizada:

    Document.writeln ("DateObject.ToString ()" + DateObject.ToString ());

    E agora vamos pensar em quantas linhas queremos retirar de tal maneira. Mesmo considere as capacidades do método "Copiar e inserir" suportados por todos editores de textoIsso não vai garantir os erros assim:

    Document.writeln ("DateObject.tolocalestring ()" + DateObject.ToString ());

    Mas, como lema IBM lê, as pessoas devem pensar, e os carros funcionam. Então, pensamos como fazer o computador trabalhar, ao mesmo tempo se roubar a necessidade de introduzir bytes extra do código, para os quais nos voltamos para a listagem 4.4.

    Listagem 4.4. Saída de diferentes tipos de datas e função eval

    Métodos do objeto de data

    Primeiro de tudo, define o recurso PrintDate, que, de fato, exibe a data em um formulário ou outro. Em vez disso, exibe a data no nosso caso, mas em princípio pode produzir qualquer coisa - a principal coisa é que o argumento que faz foi concluído pelo fragmento de código JavaScript. Ao mesmo tempo, o código é exibido como é (i.e., a variável de linha é impressa no formulário original) e, em seguida, o resultado de execução é exibido, para o qual a função EVAL é usada. Como resultado, escrevendo esta função uma vez, no futuro, no futuro, no decorrer de todo o documento, entre em contato, tendo se roubado da necessidade de entrar quase o mesmo texto duas vezes.

    Após a função de saída, a criação de um objeto de data de tipo, atribuída a 2005, 3 meses (abril, porque janeiro - zero), 1 número, 14 horas, 30 minutos, 45 segundos. Em seguida, o documento é aberto e a função PrintDate para 6 métodos diferentes do objeto de data é convencionalmente chamada. O resultado desse cenário será de 6 linhas contendo pares de valores do método e o resultado de sua operação separada pelo cólon (Fig. 4.8).

    FIG. 4.8. A retirada da mesma data por vários métodos

    Deve-se notar que o método TOSOURCE que exibe a data na apresentação interna do programa é suportado apenas pelos navegadores Mozilla. Além disso, o formato da saída de datas por todos os outros métodos também pode ser um pouco diferente em diferentes navegadores. Você pode baixar esse exemplo para vários programas de visualização e ver independentemente o que eles são emitidos (Data do arquivo.html).

    Função de objeto

    Um objeto de função predefinido determina a cadeia de código para javascript, que deve ser executada como uma função. Para declarar o objeto de função, usa a seguinte sintaxe:

    Função Nome \u003d nova função ([Argument1, Argument2, ... Argumento], BluFunction)

    Nesse caso, o nome de qualquer variável pode ser usado como um nome de função ou a propriedade de um objeto existente. Também é possível especificar uma função de tipo de objeto como um valor para um manipulador de eventos de objeto. Suponha que, se quisermos fazer seu próprio tipo de manipulador de eventos "Complete Download Document" (document.onload), podemos escrever assim:

    Document.onload \u003d nova função ([Argument1, ... argumento], offunfune);

    Os argumentos neste caso são os parâmetros transmitidos para as funções, mas o corpo da função é o código real que deve ser concluído ao acessar essa função de objeto. Por exemplo, você pode escrever esta opção de um objeto que será usado para criar um número em um quadrado:

    Var squarebj \u003d nova função ("x", "return x * x");

    Aqui SquareBJ é o nome da variável, X é o argumento recebido e "return x * x" é o corpo da função. Preste atenção ao fato de que não apenas a função do corpo, mas os argumentos levados a ele estão incluídos em cotações, bem como que o nome do tipo de objeto, como é habitual em JavaScript, é escrito com uma letra maiúscula (função).

    O uso de variáveis \u200b\u200bcriadas por este método é semelhante ao uso de variáveis \u200b\u200bde qualquer outro tipo:

    Var A \u003d 5 + squareobj (2); // recebe 9.

    Na verdade, o objeto Tipo de objeto sempre pode ser representado como uma função convencional anunciada com palavras-chave Função. Então, a mesma ereção no segundo grau pode ser descrita da seguinte forma:

    Função SquareFunc (x) (retorne x * x;)

    Consequentemente, e use a função declarada por este método (neste caso, é a função na forma "limpa" e não o procedimento), da mesma forma:

    Var A \u003d 5 + squarefunc (2); // também recebe 9

    Assim, a atribuição do valor variável como uma função usando o objeto de função é uma declaração similar da função como tal. Mas, ao mesmo tempo, essas abordagens também têm a diferença: se SquareBJ for uma variável, cujo valor é uma referência a um objeto criado usando o objeto de função, então o SquareFunc é o nome da função. Assim, ao executar o programa, eles também se comportam de maneira diferente: para um tipo de objeto, a função de intérprete sempre que a variável cai (no nosso caso - squarebj) avaliará totalmente todo o código de função, e para as funções declaradas pelo método habitual, O código é estimado apenas na primeira passagem. Essa diferença pode ser sem fins lucrativos se a função executar um trabalho único, no entanto, o uso de variáveis \u200b\u200bcom base no objeto de função reduz significativamente o desempenho do programa em ciclos. Portanto, na prática, o uso de objetos de objetos é uma raridade, mas, no entanto, às vezes eles podem ser convenientes, por exemplo, para adicionar métodos a outros objetos.

    O objeto de função possui propriedades de construtor padrão e protótipos para JavaScript, bem como um número de seus próprios:

    Argumentos - uma matriz correspondente aos parâmetros da função Argumentos.Callee - corresponde à função do corpo. Argumentos.Caller (obsoleto) - indica o nome da função da qual ocorreu os recursos do objeto; Argumentos.Length - Indica o número de parâmetros de função. Comprimento - indica o número de argumentos esperados pela função (e não ao número recebido por sua chegada, como no caso do argumento.Length);

    ATENÇÃO
    Todas as propriedades de argumentos só podem ser visíveis "da função Inside" e, começando com o JavaScript 1.4, os argumentos não são mais uma propriedade do objeto de função, mas é uma variável local independente implicitamente presente em qualquer função. Na verdade, apenas 1 propriedade própria permanece para função - comprimento.

    Além das propriedades, o objeto de função tem vários métodos. Assim, o método Aplicar permite aplicar o método de um objeto para outro, e o método de chamada chama o método de outro objeto no contexto do atual. Infelizmente, a implementação desses métodos na prática deixa claramente muito a desejar. Por isso, permanece apenas para mencionar o padrão para os métodos JavaScript Tostring, Tosource e ValueOf, disponível, bem como o objeto de função.

    Matemática de objeto.

    A matemática é o objeto de linguagem javascript embutido, que tem constantes e funções matemáticas básicas como métodos e propriedades. Por exemplo, a propriedade Math Object PI contém o valor do número PI (π), que é de aproximadamente 3.1416, e o método do pecado retorna o seio do número especificado.

    Além do número π, o objeto Math tem as seguintes propriedades:

    • E - a base de logaritmos naturais (aproximadamente 2.718)
    • LN10 - Logaritmo natural 10 (aproximadamente 2.302)
    • LN2 - Logaritmo natural 2 (aproximadamente 0,693)
    • Log10e - logaritmo decimal e (aproximadamente 0,434)
    • Log2e - logaritmo binário e (aproximadamente 1.442)
    • Sqrt1_2 - raiz quadrada De 0,5 (aproximadamente 0,707)
    • SQRT2 - raiz quadrada de 2 (aproximadamente 1.414)

    Como todas as propriedades do objeto matemática são constantes predeterminadas, criam outros objetos matemáticos não só não são necessários, mas também inaceitáveis, mas é sempre necessário acessá-los da mesma forma, por exemplo:

    Var circlelength \u003d diâmetro * math.pi;

    Além das propriedades, os métodos correspondentes às principais funções matemáticas também são definidos para objeto de matemática. Todos eles estão listados na Tabela 4.13.

    Tabela 4.13. Métodos Matemáticos JavaScript.
    Método e sua sintaxeDescrição
    aBS (número)Retorna o valor absoluto do argumento
    atan2 (y, x)Retorna um número no intervalo de -? Até?, Representando um ângulo (em radianos) entre o eixo X e o ponto (x, y). Note que o primeiro argumento é a coordenada Y
    exp (número)Retorna e para a extensão especificada (logaritmo exponencial)
    cEIL (número), piso (número)Retorna um valor que é o inteiro grande ou menor (CEIL) ou menor (piso)
    min (Number1, Number2), Max (Number1, Number2)Retornar um menor (min) ou maior (max) número de dois argumentos comparados
    pecado (número), cos (número), tan (número), asin (número), acos (número), atan (número)Retorna o resultado da execução de funções trigonométricas padrão - sinusite, cosseno, tangente, arcsinus, arcsinus e arctangent
    pow (base, expositor)Retorna a base para a exposição
    aleatório ()Retorna um número pseudo-aleatório de 0 a 1
    número redondo)Retorna o valor, arredondado para o todo mais próximo
    sqrt (número)Retorna a raiz quadrada do número

    Como no caso de propriedades, para usar métodos de objeto matemática, você deve se referir diretamente ao próprio objeto, e não em suas cópias. Por exemplo, escrevemos uma função que retornará o diâmetro com base em sua área do círculo:

    Função Circlediam (quadrado) (raio \u003d math.sqrt (quadrado / math.pi);)

    Para aproveitar isso na prática, você pode recorrer à ajuda de métodos de prompt e alerta:

    Var sq \u003d prompt ("ENTER ÁREA", 1); Var di \u003d circlediam (sq); Alerta ("diâmetro do círculo:" + di);

    O trabalho desses e outros métodos do objeto MATH pode ser visualizado no arquivo math.html.

    Objeto numérico

    O objeto numérico é uma representação objeto de tipos numéricos simples. Tem propriedades especiais para constantes numéricas - como o "número máximo", "não número" e "infinito". Para criar um novo número de objeto, use a seguinte sintaxe:

    NOVO NÚMERO

    Na prática, o uso do número de números é mais reduzido para usar suas constantes ao verificar argumentos para validação e rastreamento de erros. Por exemplo, para verificar se o valor é variável ou não, este método pode ser usado:

    If (x! \u003d Number.nan);

    Nesse caso, a condição será verdadeira se a variável X contiver um número porque é comparado com um valor especial - NAN, significando "não-número". Além de NAN, outros valores especiais podem ser usados \u200b\u200b- todos eles são as propriedades do objeto numérico:

    • Max_Value - número máximo possível
    • MIN_VALUE - Número mínimo possível
    • Nan - não é um número (não um número)
    • Negativo_infinity - "Infinito negativo", um valor especial retornado no caso de estouro
    • Positivo_infinity - "infinito positivo", um valor especial retornado em caso de estouro

    Todas essas propriedades são constantes, portanto, para usá-las para criar um novo número de objeto de objeto não é necessário. Além das seguintes propriedades, o número também define as mesmas propriedades padrão do construtor e do protótipo

    Além das propriedades, o objeto numérico, é claro, tem métodos. Além de métodos padrão Tosource, Tostring e ValueOf, em JavaScript 1.5 Existem 3 novos números - toexponential, tofixed e toprecision. Todos eles pretendem converter números em linhas com base em um formato. Assim, o método toexponencial converte um número em uma string na forma de um número com um expoente, o método tofixed está em uma string contendo um número com um número fixo de ponto e vírgula, e o método TopRecision usa um desses métodos, dependendo o número e o número selecionado de caracteres.

    Exploramos com esses métodos em mais detalhes, para os quais consideramos sua sintaxe:

    Método ([Número))

    Obviamente, para todos os métodos, o número de sinais indica o número de ponto e vírgula, mas se para o método TOFixed padrão (ou seja, se nada for especificado) será 0, para o Texponencial e TopRecision - o número de caracteres necessários para a saída do número é completamente. Para melhor lidar com o trabalho e as diferenças de todos esses métodos, considere-os sobre o exemplo da listagem 4.5:

    Listagem 4.5. Métodos Texponenciais, Tofixed e TopRecision

    Métodos de número de objeto

    Aqui nós novamente (como na Listagem 4.4) usou a função que exibe a expressão primeiro e, em seguida, o resultado de sua interpretação, apenas chamou neste caso. O seguinte deve ser o nome da variável na qual os cálculos serão feitos. Neste caso, declarávamos como objeto do tipo de número, embora, na verdade, seria possível nos restringir a simples declaração da variável (X \u003d 12.45678). Por fim, o documento é aberto para gravação e primeiro exibe o valor da variável X sem quaisquer transformações explícitas (mas já sabemos que, na verdade, o método de toString () é usado automaticamente aqui, após o qual todos os três métodos estudados são chamados primeiro sem especificar Os sinais numéricos e, em seguida, com parâmetros 2 e 4. O resultado desse cenário será de 10 linhas contendo pares "Expressão: resultado de processamento" (Fig. 4.9).

    FIG. 4.9.

    Em conclusão, permanece mais uma vez para observar que esses métodos apareceram apenas no JavaScript 1.5 e, em conformidade, não funcionam no Netscape 4, MSIE 4/5 e Navegadores de Opera para a versão 7.0. Ao mesmo tempo, eles fornecem possibilidades mais flexíveis para formatar números ao exibir do que, dizem, o método Round () do objeto Math.

    2011-08-01 // têm perguntas, sugestões, comentários? Você pode

    Há muito tempo, durante o XHTML / HTML4, os desenvolvedores tinham apenas alguns recursos que eles poderiam usar para armazenar dados arbitrários relacionados ao DOM. Você poderia inventar seus próprios atributos, mas foi arriscado - seu código não seria válido, os navegadores poderiam ignorar seus dados, e poderiam causar problemas se o nome coincidir com os atributos HTML padrão.

    Portanto, a maioria dos desenvolvedores estava ligada aos atributos de classe ou rel. Como eles eram a única maneira razoável de armazenar linhas adicionais. Por exemplo, suponha que criemos um widget para exibir mensagens como uma linha de mensagem temporária no Twitter. Idealmente, JavaScript deve ser capaz de configurar sem a necessidade de reescrever o código, portanto definimos o ID do usuário no atributo de classe, por exemplo:

    Nosso código JavaScript procurará um elemento com ID msglist.. Usando o script, vamos procurar por classes começando com do utilizador_, E "Bob" no nosso caso será o ID do usuário, e exibiremos todas as mensagens deste usuário.

    Digamos que gostaríamos também de definir o número máximo de mensagens e pule mensagens ao longo de seis meses (180 dias):

    Nosso atributo. aula É muito rapidamente escalada - é mais fácil permitir um erro, e a análise das cadeias de javascript se torna mais complicada.

    Atributos de dados HTML5.

    Felizmente, no HTML5, a capacidade de usar atributos personalizados foi introduzido. Você pode usar qualquer nome no registro inferior com o prefixo dados-, por exemplo:

    Atributos de dados personalizados:

    • essas linhas são nelas que você pode armazenar qualquer informação que possa ser representada ou codificada como uma string, como JSON. Tipos devem ser trazidos usando JavaScript
    • deve ser usado nos casos em que não há elementos ou atributos HTML5 adequados
    • aplique apenas na página. Ao contrário dos microfortatos, eles devem ser ignorados sistemas externosModelo motores de busca e pesquisar robôs.

    Exemplo nº 1 do processamento no JavaScript: GetAttribute e SetAttribute

    Todos os navegadores permitem que você obtenha e altere os atributos de dados usando os métodos GetAttribute e SetAttribute:

    Var msglist \u003d document.getelementbyid ("msglist"); var show \u003d msglist.getAttribute ("" tamanho de lista de dados "); msglist.settribute ("tamanho de lista de dados", + show + 3);

    Funciona, mas só deve ser usado para manter a compatibilidade com os navegadores antigos.

    Exemplo # 2 Processamento no JavaScript: Data () Método JQuery Library

    A partir do método JQuery 1.4.3 Data () processa os atributos de dados HTML5. Você não precisa especificar explicitamente o prefixo dados-Então tal código funcionará:

    Var msgist \u003d $ ("# msglist"); var show \u003d msglist.data ("size-size"); msglist.data ("tamanho de lista", show + 3);

    Mas, como pode, lembre-se de que o jQuery está tentando converter valores de tais atributos para os tipos de varredura (valores booleanos, números, objetos, matrizes ou nulos) e afetam o DOM. diferente setAttribute.Método dados () Fisicamente não substituirá o atributo tamanho da lista de dados - Se você verificar seu valor fora do jQuery - ainda permanecerá igual a 5.

    Exemplo No. 3 do processamento no JavaScript: API para trabalhar com conjuntos de dados

    E finalmente, temos uma API para trabalhar com conjuntos de dados HTML5, que retorna o objeto DomstringMap. Deve ser lembrado que os atributos de dados são exibidos no objeto sem prefixos dados-Dos nomes são removidos sinais de Hyphena, e os próprios nomes são convertidos em camelcase, por exemplo:

    Nome do Atributo Nome na API de conjunto de dados
    usuário de dados. do utilizador.
    data-Maxage. maxage.
    tamanho da lista de dados listar.

    Nosso novo código:

    Var msglist \u003d document.getelementbyid ("msglist"); var show \u003d msglist.dataset.Listsize; msglist.dataset.listsize \u003d + show + 3;

    Esta API é apoiada por todos os navegadores modernos, mas não ie10 e abaixo. Para esses navegadores, há uma solução alternativa, mas, provavelmente, é mais prático usar jQuery se você escrever para navegadores antigos.

    Ao trabalhar S. data e hora em Javascript Usava data do objeto.. Eu acho que não é necessário explicar quantas vezes você tem que trabalhar com a data e hora. E neste artigo você aprenderá como fazer isso em Javascript..

    Vamos começar pela tradição, com designers data do objeto. Há quatro deles. O primeiro construtor sem parâmetros, e retorna a hora e a data atual:

    Var data \u003d nova data ();
    document.write (data);

    Como resultado, você verá algo nesse espírito: " Qui 14 de outubro de 2010 11:42:06 GMT + 0400".

    Segundo designer data do objeto - Este é um designer com um parâmetro. Este parâmetro contém o número de milissegundos no passado 01.01.1970 (A origem da era Unix.). Por exemplo, então:

    Var data \u003d nova data (135253235);
    document.write (data);

    Como resultado, você verá o seguinte: " Sex Jan 02 1970 16:34:13 GMT + 0300".

    O construtor a seguir permite criar data do objeto. Com a especificação dos seguintes parâmetros: ano, mês e números:

    Var data \u003d nova data (2010, 0, 12);
    document.write (data);

    Resultado: " Ter Janeiro 12 2010 00:00:00 GMT + 0300"Também observe que 0 OH. Mês é janeiro e 11. - Isso é dezembro.

    E o último designer classe de data em JavaScript Permite que você crie data do objeto. Com todos os parâmetros da data e hora: ano, mês, número, horas, minutos e segundos.

    Var data \u003d nova data (2010, 0, 12, 23, 45, 12);
    document.write (data);

    Acontece esta linha: " Ter Janeiro 12 2010 23:45:11 GMT + 0300". Isso é tudo designers do objeto de data em JavaScriptNós fornecemos os desenvolvedores.

    Propriedades especiais de você. data de classe. Não, então nós imediatamente vamos para os métodos. Vamos começar imediatamente do grupo de métodos que funcionam é completamente igualmente, mas cada um deles retorna seu elemento de data e hora:

    Var data \u003d nova data ();
    document.write ("Ano -" + Data.Getfullyear () + "
    ");
    document.write ("mês -" + data.getmonth () + "
    ");
    document.write ("número -" + data.getdate () + "
    ");
    document.write ("Dia da semana -" + Data.GetDay () + "
    ");
    document.write ("hora -" + data.gethours () + "
    ");
    document.write ("minuto -" + data.getminutes () + "
    ");
    document.write ("secund -" + data.getseconds () + "
    ");
    document.write ("milisseconda -" + data.getmilliseconds () + "
    ");
    document.write ("O número de milissegundos passou de 01/01/1970 -" + data.gettime () + "
    ");

    Running este script, você entende instantaneamente que cada um desses métodos faz. A única coisa que quero notar é que a numeração dos dias da semana também começa com zero. E domingo tem um índice 0 e sábado - 6 .

    Existem métodos semelhantes, mas mostrando data e hora de Greenwich. Vamos escrever esse código:

    Var data \u003d nova data ();
    document.write ("Ano -" + Data.Getutcolamente () + "
    ");
    document.write ("mês -" + data.getcmonth () + "
    ");
    document.write ("número -" + data.getutcdate () + "
    ");
    document.write ("Dia da semana -" + Data.Getutcday () + "
    ");
    document.write ("hora -" + data.getchours () + "
    ");
    document.write ("minuto -" + data.GetutCminutes () + "
    ");
    document.write ("secund -" + data.getutcseconds () + "
    ");
    document.write ("Millisecond -" + Data.GetutcMilliseconds () + "
    ");

    Executando este script, você aprenderá a corrente data e hora em Greenwich.

    Métodos opostos obter () são métodos - definir (). Se o primeiro retornou certos valores, este último, pelo contrário, eles os mudaram. Na verdade, este script eu não poderia dar, mas que não há perguntas sobrando, vamos fazer isso:

    Var data \u003d nova data ();
    data.Setfulyear (1990);
    date.setmonth (11);
    data.SetDate (15);
    data.Sethours (9);
    data.setminutes (20);
    data.Setseconds (0);
    data.SetMilliseconds (10);
    document.write (data);

    Espero que você tenha notado que o método setday () não existe. Isso sugere que o dia da semana é selecionado dependendo do ano, mês e números.

    Há também métodos semelhantes para Greenwich. Apenas o prefixo é adicionado Utc.Por exemplo, um método é usado para mudar o mês setutcMonth ().

    E o último método é definir tempo (). Leva como parâmetro o número de milissegundos passou com 01.01.1970 :

    Data.SetTime (39293012);
    document.write (data);

    Como resultado, você verá isso: " Qui jan 01 1970 13:54:53 GMT + 0300".

    Isso é todos os designers e métodos objeto de data em javascript.