Entendendo o JavaScript e TiposEntendendo o JavaScript e Tipos
Problema Você quer trabalhar em torno do fato de que o JavaScript não tem declarado para os tipos de suas variáveis. Teoria código JavaScript não tem nenhuma variável com um tipo declarado. A falta de variáveis digitado é aparente quando você declarar funções. Dito isto, não ter digitado declarações de variáveis não significa que o JavaScript não possui nenhum tipo de segurança ou nenhum tipo. Vamos começar com a simples declaração de uma função, como ilustra o exemplo a seguir. Fonte: / website / ROOT / ajaxrecipes / javascript / AddTwoNumbers função expectations.html (num1, num2) (return num1 + num2;) O AddTwoNumbers função tem dois parâmetros, num1 e num2, e representa dois números individuais. Na execução do AddTwoNumbers, os dois números são somados eo valor é retornado. Esta forma de declarar e usar uma função é comum em outras linguagens de programação. O resultado da adição dos números num1 e num2 é retornado para o chamador como segue: assertEquals (4, AddTwoNumbers (2, 2)); A função assertEquals é usado para verificar que, quando o AddTwoNumbers função é chamada com 2 e 2, 4 é gerado como um resultado. Quando você executar o código, tudo funciona como esperado, mas você pode sentir a certeza de que tudo está correto? A resposta é não, você não pode se sentir seguro, porque algumas suposições enganosas estão sendo feitas. A função AddTwoNumbers declara dois números, mas no pressuposto de que num1 e num2 são números, não é razoável. Em JavaScript, variáveis são de tipo não declarado. Uma vez atribuído a um tipo, uma variável é de tipo seguro, mas você não sabe o que o tipo é até que a variável é atribuído. Portanto, com relação à função, os tipos num1 e num2 não são conhecidos Solução. A maneira mais segura para implementar AddTwoNumbers é a seguinte. Fonte: / website / ROOT / ajaxrecipes / javascript / AddTwoNumbersDisplayTypes função expectations.html (num1, num2) (var val1 = parseInt (num1); var val2 = parseInt (num2); if (isNaN (val1) | | isNaN (val2)) ( throw new Error ( "num1, (e / ou) num2 não são nem um número ou string");) info ( "AddTwoNumbersDisplayTypes", typeof (num1)); info ( "AddTwoNumbersDisplayTypes", typeof (num2)); retorno val1 + val2;) Na implementação vez, o método parseInt, que é usado para converter uma string em um número, é aplicada a ambos num1 e num2. O resultado da parseInt é um valor inteiro que permite num1 e num2 ser somados. Os parâmetros num1 e num2 são verificados a números usando o operador isNaN. O valor de retorno isNaN é um valor verdadeiro ou falso. Se algum dos retornos falsos valores, então num1 e num2 não é um número e uma exceção é acionada. Nesta implementação vez, parece que muito pouco poderia dar errado. Olhando para a implementação da adição de dois números, você pode querer saber como usar uma linguagem dinâmica como o JavaScript é uma vantagem sobre usando outra linguagem de programação. O código adicional usado para verificar se os tipos corretos são utilizados seria tedioso se esse tipo de lógica foi aplicada para todas as funções. Em outras linguagens de programação como Java e C #, adicionar dois números juntos e com segurança é completamente trivial. Concedido, se você estiver indo para realizar um grande número de cálculos numéricos, em seguida, JavaScript não é provavelmente as linguagens de programação mais adequada. Mas quando você precisa escrever um aplicativo para fazer alguma coisa, e você não quer mexer com o menor nível de detalhes que faz o tipo, o JavaScript é a melhor escolha. O código-fonte modificado é um exemplo de escrita defensiva código, que é uma boa prática, mas não levo isso muito bem e deixe-o fazê-lo paranóico. Você quer que o código que faz o que deveria fazer, e quando isso não acontecer, ele deve gerar erros explícita em outras palavras, você quer o código que grita quando ocorre um erro. O código que captura o grito deve então fazer algo com ele. Ao escrever funções, o objetivo é escrever uma aplicação que tem um código de defesa adequada às expectativas da função. Ao escrever código em uma linguagem dinâmica, como JavaScript, expectativas e convenções desempenham papéis extremamente importantes. Ao escrever código usando uma linguagem de programação C # ou como Java, programadores são esperados para esclarecer todas as situações que funciona e não funciona. Vamos reescrever a nossa função, portanto, além de implementar as nossas expectativas e usar uma convenção. O primeiro passo é fazer os testes e pensar sobre o que é e não é apropriado. A execução seguinte reflete nossas expectativas. Fonte: Objeto / website / ROOT / ajaxrecipes / javascript / classical_add_display_types expectations.html: function () (assertEquals (4, AddTwoNumbersDisplayTypes (2, 2)); assertEquals (4, AddTwoNumbersDisplayTypes ( "2", 2)); try (AddTwoNumbersDisplayTypes (novo (), 2); testManager.failed () return;) catch (e) (info ( "classical_add_display_types" erro "Esperado (" + e.toString () + ")");) testManager.success (); ), As duas primeiras chamadas método assertEquals refletem a expectativa de que poderíamos acrescentar um número que é uma corda ou um valor numérico. A expectativa da adição de dois valores numéricos é óbvio, porque normalmente você adiciona dois números juntos. A expectativa de serem capazes de reconhecer dois amortecedores como números é adequado, porque estamos lidando com formulários HTML. Elementos de formulário HTML armazenar seus valores como amortecedores. Assim, quando realizar operações matemáticas utilizando dados de elementos de formulário HTML, esperamos que as fórmulas para lidar com a conversão de buffers para valores numéricos. Depois que o método exige que implementam testes de nossas expectativas, o código dentro do bloco de exceção implementa algo que não se poderia esperar trabalho. Chamando a adição de um objeto, onde uma propriedade do objeto pode referência número um, não é algo que esperamos que a função além de descobrir. Aqui, esperamos um erro a ser gerado. O código que não é esperado para o trabalho, ou pelo menos se pode esperar a falhar, é envolto em um bloco de exceção. O papel da expectativa é exigido na função eo chamador da função, conforme ilustrado no exemplo. Em JavaScript, as funções devem atender determinadas expectativas, por isso você deve observar os seguintes pontos ao escrevê-las: • As variáveis não são declaradas usando tipos, e quando as variáveis não são atribuídos são considerados não tipificado. • Uma vez atribuído, variáveis de olhar, sentir e comportar-se como tipos. • Ao executar as funções, está a escrever blocos de código que implementam as expectativas. • Para atender adequadamente as expectativas, você precisa escrever ensaios. • Quando as expectativas não forem atendidas, os erros devem ser óbvias e suas mensagens explicativas devem ser explicativos. • Se você quiser verificar o tipo de uma variável, use typeof. Não use um simples objeto ou cheque. • Na execução das expectativas, não ser paranóica e tentativa de criar um tipo de sistema, verificando os detalhes exatos de cada variável e cada parâmetro. um artigo submetido por Sonja Lande Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "Understanding JavaScript e tipos" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 257 users browsing the articles directory |
|
|