Este artigo discute a diferença entre VAR e nenhum VAR em JavaScript. O escopo das declarações variáveis no JS é baseado em funções; portanto, geralmente vemos como evitar a poluição variável global.
(function () {// ...}) ();Dentro de uma função, as variáveis com VAR e sem var são diferentes. Existem VARs que declaram variáveis locais e não há variáveis globais declaradas, para que você possa expor a interface para o exterior.
Ao declarar variáveis no escopo global, VAR e VAR parecem iguais. Sabemos que as variáveis globais declaradas são as propriedades do Windows. Se eles são iguais, descobrimos a diferença através do método de consulta de atributos fornecido pelo ECMASCRPIT5.
var ffff = 2; window.fffa = 3; ffb = 4; this.ffc = 4; var fftx = object.getownPropertyDescriptor (janela, 'ffff'); // configurável: false, enumerável: verdadeiro, valor: 2, gravidade: verdadeiro var ffatx = object.GetownPropertyDescriptor (janela, 'fffa'); // configurável: true, enumerável: verdadeiro, valor: 2, gravidade: verdadeiro var ffbtx = object.GetownPropertyDescriptor (janela, 'fffa'); // Configurável: verdadeiro, enumerável: verdadeiro, valor: 2, gravidade: verdadeiro var ffbtx = object.GetownPropertyDescriptor (janela, 'ffb'); // Configurável: verdadeiro, enumerável: verdadeiro, valor: 2, gravidade: verdadeiro var ffctx = object.GetownPropertyDescriptor (janela, 'ffc'); // Configurável: Verdadeiro, enumerável: Verdadeiro, Valor: 2, gravável: Verdadeiro
Até o exposto, descobrimos que ainda havia uma diferença. Usamos excluir para verificar se o atributo com configuração false não pode ser excluído. Ou seja, as propriedades do objeto global declaradas através da variável Var não podem ser excluídas. Também descobriremos que as propriedades do objeto global criadas pela declaração de função não podem ser excluídas.
excluir ffff; // não pode excluir excluir FFFA; // pode excluir excluir ffb; // pode excluir excluir ffc; // pode excluir
A conclusão é que há uma diferença entre adicionar VAR e declarar variáveis globais sem var.
É legal e inofensivo declarar repetidamente uma declaração usando uma instrução VAR. Se a declaração for repetida e a tarefa for fornecida, ela não será diferente da declaração de atribuição geral. Se você tentar ler uma variável que não foi declarada, o JS relatará um erro.
As variáveis declaradas ou funções internas dentro do escopo do JavaScript são visíveis no corpo da função. Ou seja, a função já pode estar disponível antes de ser definida. Existem duas maneiras de definir uma função, uma é a expressão da definição da função e a outra é a declaração de declaração da função.
// Expressão da definição da função var fns = function () {// ...}; // função declaração de declaração função fns () {// ...}A declaração de declaração da função "foi avançada" para o topo do script externo ou o escopo da função externa; portanto, uma função declarada dessa maneira pode ser chamada pelo código que aparece antes dele novamente. Nas expressões de definição de função, a declaração da variável é avançada, mas a atribuição da variável não é avançada; portanto, as funções definidas na expressão não podem ser chamadas antes da definição da função.
(function () {testa (); // imprima testa testb (); // relate um erro: é solicitado que indefinido não seja um console de função.log (testc); // indefinido, se movido para o acima, não é bom fazer function () {console.log ("testa");} var testb = functb = functb = () {console.log.log ("l); "testc";Obviamente, quando declaramos variáveis e funções, devemos cumprir as especificações básicas, e variáveis e declarações de função devem estar antecipadamente.