0-juiz se variáveis e parâmetros são inicializados
se (x) {} // a variável é inicializada ou a variável não estiver vazia ou a variável não for zeroA função de 1 declaração não requer declaração de valor de retorno ou tipo de parâmetro, e o final da frase nem sequer exige ';'
função soma (i1, i2) {return i1+i2}2-Diretamente declaram funções anônimas para usar imediatamente
var f = function (i1, i2) {return i1+i2;}; alerta (f (1,2)); // alerta de função anônima comum (função (i1, i2) {return i1+i2;} (3,4)); // declarar diretamente, use imediatamente3-JS não tem um conceito de classe, então alguns métodos parecem aulas
função pessoa (nome, idade) {this.name = name; // Adicione dinâmico atributos, semelhante ao dinâmico a em c#. A = new ExpendoObject (); this.age = idade; this.sayhello = function () {alert ('Olá, meu nome é'+nome+'eu sou'+idade+'anos. // Ligue para P1.gnder = 'masculino' como uma classe; // Adicione dinâmico o alerta de atributo 'gênero' (p1.gnder);Os objetos de 4 matrizes são matrizes e você não precisa pré-qualificar o comprimento da matriz.
var arr = new Array (); arr [0] = 0; arr [1] = 1; arr [2] = 2; para (var i = 0; i <= arr.length-1; i ++) {alert (arr [i]);}5-Array é uma matriz, também um dicionário, e também uma pilha
var dict = new Array (); // como dicionário, use dict ['i'] = 'wo'; dict ['amor'] = 'ai'; dict ['you'] = 'ni'; alert (dict ['i']]); // Ligue para alerta (dict.love); // chama os atributos de chamada (características da linguagem dinâmica) para (var k no dict) {// alerta de viagem (k); // 'i', 'Love', 'you'-> IMPRESSÃO} para (var k de dict) {// alerta de viagem (k); // 'wo', 'ai', 'ni'-> imprimir valor} var arr = [1,2,3,4,5]; // Método de criação simplificado de matriz var = {"lorry": 21, "nuvem": 20}; // Método de criação de estilo de dicionário6 Transfere todos os elementos que podem ser chamados na página atual
var s = nulo; para (var k no documento) {// As propriedades do objeto são s+= k+";";} alerta (s);Operações subscritas de 7-uso semelhantes à matriz para obter caracteres em uma posição especificada da string
var s = 'Olá, mundo!'; S [0]; // 'h's [6]; // 'S [12]; // '!' S [13]; // Os índices indefinidos fora do intervalo não relatarão um erro, mas sempre retornarão indefinidos. Deve -se notar que a corda é imutável. Se você atribuir um valor a um determinado índice da string, não haverá erros, mas não há efeito: var s = 'teste'; s [0] = 'x'; alerta (s); // s ainda é 'teste'
Pápsula de 8 cápsulas
var s = 'hello'; s.ToupPercase (); // return 'hello' var s = 'hello'; s.tolowerCase (); // retorna 'olá'
9-Search para o local onde a string especificada aparece
var s = 'Olá, mundo'; s.IndexOF ('mundo'); // retorna 7.IndexOF ('mundo'); // Nenhuma substring especificada foi encontrada, retorno -1Subtrings de 10-Get de string especificados com intervalo de índice
var s = 'Olá, World's.substring (0, 5); // Comece do índice 0 a 5 (excluindo 5), retorne 'hello's.substring (7); // Comece do índice 7 para o fim, retorne 'mundo'
O objeto 11-JavaScript é um tipo de dados de coleta não ordenado, que consiste em vários pares de valor-chave.
var xiaoming = {nome: 'xiaoming', nascimento: 1990, escola: 'No.1 ensino médio', altura: 1,70, peso: 65, pontuação: nulo // o último par de valores-chave não precisa ser adicionado ','}; xiaoming.name; // 'xiaoming'xiaoming.birth; // 1990 O acesso ao atributo é feito através do. Operador, mas isso exige que o nome do atributo seja um nome de variável válido. Se o nome do atributo contiver caracteres especiais, ele deve ser fechado com []: var xiaohong = {name: 'xiaohong', 'escola média': 'No.1 ensino médio'}; xiaohong ['ensino médio']; // 'No.1 School do ensino médio'xiaohong [' nome ']; // 'xiaohong'xiaohong.name; // 'xiaohong'xiaohong.age; // indefinido12-Para detectar se o Xiaoming tem um certo atributo, use o operador no IN:
'Nome' em xiaoming; // true'grade 'em xiaoming; // false *** Se em determinar que existe uma propriedade, essa propriedade pode não ser xiaoming, pode ser herdada por Xiaoming:' ToString 'em Xiaoming; // true *** Para determinar se uma propriedade é de propriedade de si mesmo, não herdada, você pode usar o método HistownsProperty (): xiaoming.HasownProperty ('nome'); // truexiaoming.HasownProperty ('ToString'); // false13 mapa
var m = novo mapa ([['Michael', 95], ['Bob', 75], ['Tracy', 85]]); // Método de inicialização da matriz 2D M.Get ('Michael'); // 95 var m = novo map (); // inicializa diretamente um mapm.set vazio ('adam', 67); // Adicione um novo key-valuem.set ('bob', 59); M.Has ('Adam'); // seja a chave 'adam': truem.get ('adam'); // 67M.Delete ('Adam'); // excluir key 'adam'm.get (' adam '); // indefinido var m = novo mapa ([[1, 'x'], [2, 'y'], [3, 'z']]); para (var n de m) {// traverse mapa alerta (n [1] + '=' + n [0]);}O método de 14-Atrable integral foreach, que recebe uma função e liga automaticamente de volta a cada iteração.
var a = ['a', 'b', 'c']; A.ForEach (function (elemento, índice, array) {// elemento: aponte para o valor do elemento atual // índice: aponte para o índice atual // Array: aponte para o próprio objeto de matriz alerta (elemento);}); O conjunto é semelhante à matriz, mas o conjunto não possui um índice, portanto a função de retorno de chamada tem no máximo dois parâmetros: var s = new Set (['a', 'b', 'c']); S.ForEach (função (elemento, set) {alert (elemento);}); Os parâmetros da função de retorno de chamada do mapa são valor, chave e mapa: var m = novo mapa ([[1, 'x'], [2, 'y'], [3, 'z']]); m.foreach (função (valor, chave, mapa) {alert (value);}); var a = ['a', 'b', 'c']; a.foreach (function (element) {alert (elemento);});Método do MAP () de 15-Use Array, passe em nossa própria função e você obtém uma nova matriz como resultado:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; Arr.map (função (x) {return x*x;}). foreach (function (element) {alert (elemento); // [1, 4, 9, 16, 25, 36, 49, 64, 81]});16-uso mapa () para converter todos os números em matriz em strings:
var Arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; Arr.Map (String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
17 de uso Reduce () para fazer cálculos cumulativos
var arr = []; para (var x = 1; x <= 100; x ++) {arr.push (x); // coloque 1 ~ 100 em um alerta de matriz} (arr.reduce (função (x, y) {return x+y; // soma cumulativa de todos os objetos de arr, retorne o resultado da soma}));18-uso reduz () para fazer uma conversão impressionante: converta [1, 2, 5, 8, 0] em número inteiro 12580
var arr = [1, 2, 5, 8, 0]; alerta (arr.reduce (função (x, y) {return x*10+y;}));19-uso filtro () para filtrar certos elementos da matriz
var arr = [0,1,2,3,4,5,6,7,8,9];alert(arr.filter(function(x){return x%2===0;}));//0,2,4,6,8 // Return true, keep deletion of the empty string in an Array var arr = ['A', '', 'B', null, undefined, 'C', ' ']; alert (arr.filter (função (s) {return s && s.trim (); // Nota: não há método TRIM () nas versões abaixo do ie9})); // ['a', 'b', 'c']20-Array's Sort () Método converte todos os elementos em string primeiro e depois a classifica, então ...
[10, 20, 1, 2] .Sort (); // [1, 10, 2, 20] Portanto, se você quiser classificar por tamanho do número, pode escrever isso: var arr = []; para (var x = 1; x <= 10; x ++) {arr.push (x);} document.write (arr+"<br/>"); Para ignorar a influência das letras, você deve primeiro se converter em maiúsculas ou minúsculas var pr = ['google', 'maçã', 'microsoft']]; alert (arr.sort (function (s1, s2) {var x1 = s1.touppercase (); var x2 = s2.TouPercase (); retorno x2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <X2 <x2 <X2 <X2 <X2?; // ['Apple', 'Google', 'Microsoft']Estrutura do programa de 21 closes
① Atribuir a função como o valor de retorno ao parâmetro, chame o parâmetro para obter o resultado do cálculo var = []; para (var n = 1; n <101; n ++) {arr.push (n);} função lazy_sum (arr) {var = function () {return ar.Duce (function (x, y) {{y) {{Return X+y; } retornar soma;} var f = lazy_sum (arr); alert (f ()); ② A função retornada não é executada imediatamente, mas não é executada até que f () seja chamado de contagem de funções () {var arr = []; for (var i = 1; i <= 3; i ++) {arr.push (function () {return i * i;}); } return arr;} var resulta = count (); // Existem 3 funçõesVar f1 = resultados [0]; var f2 = resultados [1]; var f3 = resultados [2]; f1 (); // 16 A função retornada refere -se à variável I, mas não é executada imediatamente. f2 (); // 16 Quando todas as três funções retornam, a variável que eu referenciei se tornou 4, f3 (); // 16 Portanto, o resultado final é 16 *** Ao retornar o fechamento, lembre -se: não se refere a nenhuma variável de loop ou variáveis que mudarão no futuro! ③O que se você deve se referir a variáveis de loop? O método é criar outra função e usar os parâmetros da função para vincular o valor atual da variável loop. Independentemente de como a variável de loop muda no tempo subsequente, o valor ligado ao parâmetro da função permanece inalterado: contagem da função () {var arr = []; for (var i = 1; i <= 3; i ++) {arr.push (function (n) {return function () {return n*n;}} (i)); } return arr;} var resulta = count (); var f1 = resultados [0]; var f2 = resultados [1]; var f3 = resultados [2]; alerta (f1 ()); // 1Art (f2 ()); // 4Alert (F3 ()); // 9 ④ Em idiomas sem mecanismo de classe e apenas funcionam, com a ajuda de fechamentos, uma variável privada pode ser encapsulada função cret_counter (init) {var n = init || 0; return {add: function () {n+= 1; retornar n; }}} var c = cret_counter (); alert (c.add ()); // 1Art (c.add ()); // 2Alert (c.add ()); // 3 *** no objeto retornado, um fechamento é implementado, que carrega a variável local e a variável n não pode ser acessada a partir de código externo. Em outras palavras, um fechamento é uma função que carrega estados, e seu estado pode ser completamente oculto do lado de fora. ⑤ Use Math.pow (x, y) para calcular x^2 ou x^3 //math.pow(x, y)-> x^yfunction make_pow (y) {return function (x) {return math.pow (x, y); }} var pow2 = make_pow (2) var pow3 = make_pow (3) alerta (Pow2 (3)) // 9alert (pow3 (3)) // 27Função de 22-ARROW (atualmente suportada apenas pelo Firefox) // parâmetros => Corpo de função
var f = x => x*xxxalert (f (3)) // 27
23 generadores para gerar sequências de Fibonacci
função* fib (max) {var t, a = 0, b = 1, n = 1; while (n <= max) {rendimento a; t = a+b; a = b; b = t; n ++; } retornar a;} para (var x de fib (10)) {// iterar o objeto gerador document.write (x+''); // Saída 0, 1, 1, 2, 3} Use gerador para gerar um ID auto-incremental (nenhuma variável global necessária) função* next_id () {for (var x = 1; x <100; rendimento x ++);} var g = next_id (); alert (G.Next (). Value); // 1Art (G.Next (). Valor); // 2ALERT (G.Next (). Valor); // 3O exposto acima é o conteúdo completo das notas de auto-estudo JavaScript (artigo obrigatório de leitura) trazida a você pelo editor. Espero que todos apoiem mais wulin.com ~