NO1. Sintaxe e tipo
1. Definição da declaração
Tipo de variável: var, defina variável; Deixe, definir variáveis locais no domínio do bloco (escopo); const, defina constantes somente leitura.
Formato variável: comece com uma letra, sublinhe "_" ou $ símbolo, sensível ao caso.
Atribuição variável: o valor da variável declarada, mas não atribuída, é indefinida quando usada. O uso diretamente da variável não declarada lançará uma exceção.
A variável não atribuída é calculada: o resultado é NAN. Por exemplo:
var x, y = 1;
console.log (x + y); // O resultado é NAN, porque X não tem atribuição.
2. Escopo
Escopo variável: não há campo de declaração de bloco antes do ES6 e as variáveis atuam nos blocos de função ou globalmente. Por exemplo, o código a seguir entra x como 5.
if (true) {var x = 5;} console.log (x); // 5ES6 Variável Escopo: O ES6 suporta o escopo do bloco, mas requer o uso de Let to Declare Variable. O código a seguir gera a exceção.
if (true) {let y = 5;} console.log (y); // ReferenceError: y não está definido1234Float variável: em um método ou código global, quando usamos variáveis antes das variáveis da vida, não jogamos exceções, mas retornamos indefinidos. Isso ocorre porque o JavaScript flutua automaticamente a declaração de variáveis para a frente da função ou global. Conforme mostrado no código a seguir:
/*** flutuação variável global*/console.log (x === indefinido); // logs "true" var x = 3;/*** variável de método float*/var myvar = "meu valor"; // Print Variable MyVar resultado é: indefinido (function () {console.log (myvar); // indefinedvar myvar = "valor local";); O código acima é equivalente ao seguinte código: /*** FLOAT GLOBAL VARIÁBRA* /VAR X; console.log (x === indefinido); // logs "true" x = 3;/*** variável float*/var myvar = "meu valor"; (function () {var myvar; console.log (myvar); // undefinedmyvar = "valor local";}) ();Variáveis globais: Na página, o objeto global é a janela, para que possamos acessar a variável global através da janela.Variable. Por exemplo:
versão = "1.0.0"; console.log (window.version); // saída 1.0.0
NO2. Estrutura de dados e tipo
1. Tipo de dados
6 Tipos básicos: booleano (verdadeiro ou falso), nulo (JS Case sensível, diferente de NULL e NULL), indefinido, número, string, símbolo (marque único e imutável)
Um tipo de objeto: objeto.
Objeto e função: um objeto como contêiner de valores e uma função como um processo de aplicação.
2. Conversão de dados
Função: os métodos parseint e parsefloat podem ser usados para converter uma string em um número.
Parseint: A assinatura da função é parsente (String, Radix), o Radix é um número de 2-36 que representa a base numérica, como decimal ou hexadecimal. O resultado do retorno é inteiro ou NAN, por exemplo, os seguintes resultados de saída são todos 15.
parseint ("0xf", 16); parseint ("f", 16); parseint ("17", 8); parseint (021, 8); parseint ("015", 10); parseint (15,99, 10); arseint ("15,123", 10); 2); parseint ("15*3", 10); parseint ("15e2", 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10); 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10); parseint ("15px", 10);parsefloat: a assinatura da função é parsefloat (string) e o resultado é um número ou nan. Por exemplo:
parsefloat ("3.14"); // retorna o número parsefloat ("314e-2"); // retorna o número parsefloat ("caracteres mais não dígitos"); // retorna o número Nan3. Tipo de dados Textualização
Tipos texturizados: matriz, booleano, ponto flutuante, números inteiros, objeto, regexp, string.
Casos de vírgula adicionais em matriz: ["leão", "anjo"], comprimento 3, o valor de [1] é invisível. ['Home', 'School',], a última vírgula é omitida para que o comprimento seja 3. [, 'Home', 'School'], comprimento 4.
Inteiro inteiro: Os números inteiros podem ser expressos como decimais, octal, hexadecimais e binários. Por exemplo:
0, 117 e -345 // decimal 015, 0001 e -0o77 // octal 0x1123, 0x00111 e -0xf1a7 // Hex 0b11, 0b0011 e -0b11 1234 // número de ponto flutuante binário: [(+|)] [Digits] [. Por exemplo: 3.1415926, -.123456789, -3.1e+12 (3100000000000), .1e -23 (1e -24)
Objeto: o valor de aquisição da propriedade de um objeto pode ser obtido através de ". Atributo" ou "[Nome do atributo]". Por exemplo:
var car = {ManyCars: {a: "saab", "b": "jeep"}, 7: "mazda"}; console.log (car.manyCars.b); // jeepconsole.log (carro [7]); // MazdaAtributo do objeto: o nome do atributo pode ser qualquer string ou string vazia, e nomes inválidos podem ser incluídos nas cotações. Nomes complexos não podem ser obtidos através., Mas podem ser obtidos através de []. Por exemplo:
var uncualPropertyNames = {"": "uma string vazia", "!": "Bang!"} Console.log (UncualPropertyNames. "" "); // SyntaxError: stringconsole inesperado (UncualPropertyNames [""]); // um stringconsole vazio.log (UnuUtualPropertyNames.!); // SyntaxError: token inesperado! Console.log (UncualPropertyNames ["!"]); // Bang!Caracteres de transformação: os seguintes resultados de saída da string contêm cotações duplas porque o símbolo de transformação "/" "é usado.
var quote = "Ele leu/" A cremação de Sam McGee/"por RW Service."; Console.log (CITAÇÃO); // Saída: ele leu "A cremação de Sam McGee" por RW Service.1.
Método de quebra de linha da string: Adicione "/" diretamente no final da string, conforme mostrado no código a seguir:
var str = "Esta string /está quebrada /cruzada múltipla /linhas." Console.log (str); // Essa sequência é quebrada entre multiplelines.
NO3. Fluxo de controle e manuseio de erros
1. Expressão do bloco
Função: as expressões de bloco são geralmente usadas para controlar os fluxos, como se, para e enquanto. No código a seguir, {x ++;} é uma declaração de bloco.
while (x <10) {x ++;}Não havia escopo de domínio de bloco antes do ES6: antes do ES6, as variáveis definidas em blocos foram realmente incluídas nos métodos ou globalmente, e a influência de variáveis excedeu o escopo do escopo do bloco. Por exemplo, o resultado final da execução do código a seguir é 2, porque as variáveis declaradas no bloco atuam no método.
var x = 1; {var x = 2;} console.log (x); // Saídas 2Após o ES6, existe um intervalo de domínio de bloco: no ES6, podemos alterar a declaração de domínio do bloco VAR para deixar, para que a variável apenas ocorra o intervalo de blocos.
2. Julgamento lógico
Os valores especiais julgados como falsos: falsos, indefinidos, nulos, 0, nan, "".
Tipos booleanos e booleanos simples: há uma diferença entre falsa e verdadeira tipos booleanos simples e falso e verdadeiro dos tipos booleanos do objeto, e os dois não são iguais. Como no exemplo seguinte:
var b = novo booleano (false); if (b) // retorna truef (b == true) // retorna false
NO4. Manuseio de exceção
1. Tipo de exceção
Sintaxe de arremesso de exceção: o lançamento de exceção pode ser de qualquer tipo. Como mostrado abaixo.
lançar "error2"; // Tipo de string Throw 42; // tipo de número joga verdadeiro; // Tipo booleano Throw {ToString: function () {return "Sou um objeto!"; }}; // tipo de objetoExceção personalizada:
// Crie um tipo de objeto UseRexceptionFunction useRexception (message) {this.message = message; this.name = "userexception";} // reescreva o método de tostring para obter diretamente informações úteis ao lançar uma exceção userexception.protype.ToString = function () {return this.name + '' ':' '' '' '' '' +.ess; lançar uma nova userexception ("valor muito alto");2. Sintaxe
Palavras -chave: use, tente {} catch (e) {} finalmente {} sintaxe, semelhante à sintaxe c#.
Finalmente, Valor de Retorno: Se finalmente adicionar uma instrução RETURN, não importa o que o TRIMENTE INTEIRO. Como mostrado abaixo:
função f () {tente {console.log (0); jogue "falso"; } catch (e) {console.log (1); retornar true; // A declaração de retorno é interrompida até que finalmente a execução seja concluída console.log (2); // código que não será executado} finalmente {console.log (3); retornar falso; // substitui o console de retorno.log (4); // código que não será executado} // "return false" é executado agora console.log (5); // não acessível} f (); // saída 0, 1, 3; Retornar falsoFinalmente, engolir exceção: se finalmente houver um retorno e há uma exceção de arremesso na captura. A exceção de arremesso não será capturada porque foi coberta pelo retorno finalmente. O código a seguir se parece:
função f () {tente {tiro "falsa"; } catch (e) {console.log ('pego interno "falso"'); jogar e; // A declaração de arremesso é interrompida até que finalmente seja concluída a execução} finalmente {return false; // substitui a declaração de arremesso em try.catch} // "return false"} tente {f ();} catch (e) {// não será executado aqui porque o arremesso na captura foi substituído pela declaração de retorno em finalmente console.log ('pego' bogus "');Objeto de erro do sistema: podemos usar diretamente o erro {nome, mensagem}, por exemplo: tiro (novo erro ('a mensagem'));
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.