Conceitos básicos
javascript是一门解释型的语言,浏览器充当解释器。js执行引擎并不是一行一行的执行,而是一段一段的分析执行。Atraso scripts
O atributo de difer é definido no HTML4.0.1, que é usado para indicar que o script não afetará a construção da página quando for executado. Em outras palavras, o script será adiado até que toda a página tenha sido analisada antes da execução. Portanto, definir o atributo de adiamento no elemento <Script> é equivalente a dizer ao navegador para baixar imediatamente, mas atrasando a execução. Nos documentos xhtml, defina o atributo de adiamento para defer=“defer"
Scripts assíncronos
html5 define o atributo assíncrono para <cript>. Toda a propriedade é semelhante à propriedade adieira e é usada para alterar o comportamento dos scripts de processamento. Da mesma forma, semelhante ao adiamento, o Async funciona apenas com arquivos de script externo e diz ao navegador para baixar o arquivo imediatamente. Mas, diferentemente do adiamento, os scripts marcados como assíncronos não garantem a execução na ordem em que são especificados.
O objetivo de especificar o Async é impedir que a página aguarde o download do arquivo de script e executado, carregando assim outros conteúdos da página de forma assíncrona. Portanto, é recomendável que scripts assíncronos não operem DOM durante o carregamento
maiúsculas e minúsculas
Tudo no ECMAScript (incluindo variáveis, nomes de funções e operadores) é sensível ao maiúsculas de minúsculas.
1. Variáveis JScript
As variáveis são definidas na memória quando são usadas pela primeira vez e são posteriormente referenciadas nos scripts. Declare antes de usar variáveis. Declarações variáveis podem ser usadas usando a palavra -chave var.
var count, amount, level; // 用单个var 关键字声明的多个声明。
Nomeação variável
Os nomes das variáveis incluem variáveis globais, variáveis locais, variáveis de classe, parâmetros de função, etc. Todos se enquadram nessa categoria.
A nomeação variável é composta por prefixo do tipo + palavras significativas, e a legibilidade de variáveis e funções é aumentada pela nomenclatura de camelo. Por exemplo: Susername, NCount.
Especificação de prefixo:
Cada variável local precisa ter um prefixo de tipo, que pode ser dividido em:
S: representa uma string. Por exemplo: SNITE, shtml; n: representa um número. Por exemplo: npage, ntotal; B: representa a lógica. Por exemplo: bchecked, bhaslogin; A: representa uma matriz. Por exemplo: Alist, Agrop; R: representa uma expressão regular. Por exemplo: RDOMAIN, RELAIL; F: representa uma função. Por exemplo: fgethtml, finit; o: representa outros objetos não mencionados acima, como: obutton, odate; G: representa variáveis globais, como: GUSERNAME, GLOGINGIME;
O JScript é uma linguagem sensível ao caso. Criar um nome de variável legítima deve seguir as seguintes regras:
Observe que o primeiro caractere não pode ser um número.
Você pode seguir qualquer carta ou número e sublinhamento, mas não espaços
O nome da variável não deve ser uma palavra reservada.
javascript é um idioma fracamente digitado, e JavaScript ignora espaços desnecessários. Você pode adicionar espaços ao script para melhorar sua legibilidade.
var é uma palavra reservada para javascript , indicando que a seguir é a descrição da variável, o nome da variável é um identificador definido pelo usuário e as variáveis são separadas por vírgulas.
Se uma variável for declarada, mas nenhum valor será atribuído a ele, a variável existe e seu valor é o valor JScript indefinido.
Conversão do tipo de força
No JScript, as operações podem ser executadas em diferentes tipos de valores, sem se preocupar com exceções do intérprete JScript. Em vez disso, o intérprete JScript altera automaticamente (eleva) um dos tipos de dados para outro tipo de dados e depois executa a operação. Por exemplo:
O valor do resultado do cálculo é adicionado à string e ao valor do elenco em uma string. Adicionar o valor booleano à string lança o valor booleano em uma string. Adicionar o valor numérico ao valor booleano lança o valor booleano a um valor numérico.
Para converter explicitamente uma string em um número inteiro, use parseInt . Para converter explicitamente uma sequência em um número, use parseFloat .
Lifetime de variáveis JavaScript : Quando você declara uma variável dentro de uma função, só pode acessar a variável nessa função. Ao sair da função, essa variável será revogada. Essa variável é chamada de variável local. Você pode usar variáveis locais com o mesmo nome em funções diferentes, porque apenas funções que declararam variáveis podem reconhecer cada variável.
Se você declarar uma variável fora de uma função, todas as funções na página poderão acessar a variável. A vida útil dessas variáveis começa após serem declaradas e termina quando a página é fechada.
mapa mental variável js
2.js Tipo de dados
O JScript possui três tipos -> Tipos de dados principais, dois tipos de dados compostos e dois tipos de dados especiais.
Tipos de dados principais (básicos)
字符串数值布尔Tipo de dados composto (referência)
对象数组Tipos de dados especiais
Null`Undefined`Tipo de dados da string: Tipo de dados da string é usado para representar o texto no JScript. No JS, enquanto as duas citações duplas ("") e as citações únicas ('') podem representar strings, elas quase não têm diferença. Mas usar apenas citações duplas ("") para indicar que uma string é considerada a melhor.
Um valor de string é uma sequência de zeros ou mais caracteres unicode (letras, números e marcas de pontuação) dispostos juntos.
O que é Unicode?
O Unicode fornece valores exclusivos para cada caractere, independentemente da plataforma, programa ou idioma. O Unicode é desenvolvido para fornecer uma codificação unificada para o processamento de todos os personagens que existem no mundo.
Tipo de dados numéricos
Precisamos entender que o JScript representa internamente todos os valores como valores de ponto flutuante; portanto, não há diferença entre os números inteiros e os valores de ponto flutuante no JScript.
Tipo de dados booleano
Booleano (lógico) pode ter apenas dois valores: verdadeiro ou falso.
Matrizes e objetos JS
Para detalhes, consulte meu artigo -> Javascript Learning Resumo - Array e parte do objeto
Tipo de dados nulo: você pode limpar o conteúdo de uma variável atribuindo um valor nulo a uma variável.
typeof no JScript relatará o valor null como tipo Object , não digite null .
<html xmlns = "http://www.w3.org/1999/xhtml" xml: lang = "pt"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf tEIT-8"/> <> nulo); </script> </ad Head> <body> </body> </html>
null é usado para representar um objeto que ainda não existiu e é frequentemente usado para representar uma função que tenta retornar um objeto que não existe.
Tipo de dados Undefined :
O valor indefinido será devolvido na seguinte situação:
对象属性不存在,声明了变量但从未赋值。Diferença entre nulo e indefinido
alerta (tipo de indefinido); // saída de alerta "indefinido" (tipo de nulo); // saída de "objeto" alerta (null == indefinido); // saída "true"
O ECMAScript acredita que indefinido é derivado de nulo, portanto eles são definidos como iguais.
alerta (nulo === indefinido); // saída "false" alerta (tipo de null == typeof indefinido); // saída "false"
NULL e indefinido são diferentes nos tipos, portanto, a saída "falsa". E === significa igualdade absoluta, aqui nulo === saída indefinida falsa
Além disso, aqui está um tipo de dados mais importante - Tipo de dados de referência
Tipo de dados de referência
Javascript Reference Data Type é um objeto armazenado na memória da heap. O JavaScript não permite acesso direto à localização e operação do espaço da memória da heap. Ele só pode operar o endereço de referência do objeto na memória da pilha. Portanto, os dados do tipo de referência são realmente armazenados na memória da pilha como o endereço de referência do objeto na memória da heap. Este endereço de referência permite encontrar rapidamente objetos armazenados na memória da heap.
Vamos demonstrar o processo de atribuir tipos de dados de referência
Obviamente, adicionar um atributo de nome ao OBJ2 está realmente adicionando um atributo de nome aos objetos na memória da heap. OBJ2 e OBJ1 Salve apenas o endereço de referência do objeto de memória heap na memória da pilha. Embora eles também sejam copiados, o objeto apontado é o mesmo. Portanto, a mudança de OBJ2 causa a mudança de obj1.
Os valores do tipo básico se referem a segmentos de dados simples armazenados na memória da pilha, ou seja, um local onde esses valores são armazenados completamente na memória.
O valor do tipo de referência refere -se aos objetos armazenados na memória da heap, ou seja, a variável é na verdade apenas um ponteiro, que aponta para outro local na memória, onde o objeto é salvo.
Em resumo, os valores de referência de memória de heap armazenam e o Stack Memory armazena valores de tipo fixo.
No ECMAScript , as variáveis podem ter dois tipos de valores, a saber, o valor original e o valor de referência.
Um segmento simples de dados em que os valores originais são armazenados na stack , ou seja, seus valores são armazenados diretamente no local em que a variável é acessada. O objeto referenciado armazenado no heap ( heap ), ou seja, o valor armazenado na variável é um ponteiro ( point ) apontando para a memória onde o objeto é armazenado.
<script type = "text/javascript"> var box = new Object (); // Crie um tipo de referência var box = "lee"; // O valor do tipo básico é a caixa de string.age = 23; // É estranho adicionar atributos aos valores do tipo básico, porque apenas objetos podem adicionar atributos. alerta (box.age); // não é um tipo de referência e não pode ser emitido; </script>
3.jscript Operadores
Prioridade: refere -se à ordem das operações dos operadores. Em termos leigos, é calcular qual parte da operação primeiro.
Combinação: a ordem de cálculo do mesmo operador de prioridade, nos termos do leigo, é de qual direção calcular, seja da esquerda para a direita ou direita para a esquerda.
Tipo de dados Conversão
String () para o tipo de string
Número () converte em tipo numérico
Booleano () para tipo booleano
parseInt : converte uma string em um número inteiro. Comece a analisar desde o início da corda, pare de analisar na primeira posição não inteira e retorne todos os números inteiros lidos antes. Se a string não começar com um número inteiro, a NAN será devolvida. Por exemplo: o valor retornado por parseint ("150 oi") é: 150, e o valor retornado por parseint ("oi") é: nan.
parseFloat : converte uma string em um número de ponto flutuante. Comece a analisar desde o início da corda, pare de analisar na primeira posição não inteira e retorne todos os números inteiros lidos antes. Se a string não começar com um número inteiro, a NAN será devolvida. Por exemplo: parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。
eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。4.JS Controle do processo
Para as declarações de controle de processos JS, aqui estão apenas alguns difíceis de entender. Não vou entrar em detalhes sobre os outros. Um mapa mental está anexado abaixo.
1. O para ... em declaração executa uma ou mais declarações correspondentes a cada um de um objeto ou a cada elemento de uma matriz.
para (variável em declarações [objeto | Array])
parâmetro:
variable : uma opção necessária. Uma variável que pode ser atributo de um objeto ou qualquer elemento de uma matriz.
object , array : Opcional. O objeto ou matriz para atravessar nele.
statement : Opcional. Uma ou mais declarações a serem executadas em relação a cada propriedade de um objeto ou a cada elemento de uma matriz. Pode ser uma declaração composta.
Embora as instruções de controle condicional (como se as instruções) exijam o uso de blocos de código somente quando várias instruções são executadas (iniciando no suporte esquerdo "{" e terminando no cinto direito "}"), a melhor prática é sempre usar blocos de código.
if (args) alert (args); // fácil de erros se (args) {alert (args); // recomendado usar}JS Controle de Controle de Processo mapa mental
5.js função
Uma função é um bloco de código reutilizável que é conduzido por um evento ou executado quando é chamado.
Jscript suporta duas funções: uma é uma função dentro do idioma e a outra é criada por si só.
As funções JavaScript não permitem parâmetros (mas parâmetros que contêm parâmetros não podem ser omitidos) e os parâmetros podem ser transmitidos para funções para uso por funções.
Para obter mais informações sobre funções, visite outro artigo do meu artigo: um resumo do Javascript Learning (iv) Função Parte da função
Composição de objetos
Método - Função: Procedimento, Propriedades Dinâmicas - Variáveis: Estado, estático
Finalmente, um mapa mental resumido pelos idosos: