2013-11-19 2 views
0

При написании функции Javascript Я всегда сделал первое задание переменной с вар, как вJavascript объявляя вар сейчас и позже

var x = 1; 

Позднее х может быть что-то еще. Должен ли я написать

if (something) { 
x = 2;} 

или

if (something) { 
var x = 2;} 

Если бы вы могли сказать, почему это помогло бы.

+1

MDC является хорошим местом для начала: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var –

+0

Эти предыдущие ответы должны сортировать вас: HTTP : //stackoverflow.com/questions/2485423/javascript-is-using-var-to-declare-variables-optional http://stackoverflow.com/questions/500431/javascript-variable-scope – JMP

+0

ВДП с областью действия по каждой функции. JavaScript не имеет области блока. Лучше всего объявлять переменные так близко, как вы их используете, но в функции, которая находится в начале функции: 'var a;', даже если вы не доберетесь до нас до конца функции, это хорошо для лучшего читаемость. ECMA 5 имеет область действия блока, а в новом Firefox также есть: 'for (let i = 0 ....' переменная i доступна только в цикле for. – HMR

ответ

5

Нельзя использовать ключевое слово var, если вы меняете значение переменной, которая уже была объявлена.

Итак:

var x = 1; 

if(something) x = 2; 

Если испытание было так просто, можно было бы написать так:

var x = something ? 2 : 1; 

Он также должен сделать с обзорного. В рамках функций создается новая область.

Например:

var x = 1; 

function myFunction(){ 
    var x = 2; 
} 

myFunction(); 

console.log(x); // 1 

В то время как, если вы опустили var ключевое слово внутри функции, то было бы изменение значения переменной x в наружном объеме и console.log(x) бы показать 2.

+4

Поздравление до 10K! – some

+0

@ahren Спасибо за четкое объяснение. Я немного увеличил свои знания языка, и выпрямление этой проблемы - хороший шаг (даже мои функции работают). Мои условия иногда довольно сложны, но не всегда, и я не знал о коде быстрого доступа. –

+0

Добро пожаловать @BettyMock - это именно то, для чего этот форум! – ahren

1

В простом коде это фактически не имеет никакого отношения к интерпретатору JS.

Ради всех, кто должен прочитать код, однако, лучше всего объявить переменные один раз в верхней части области, в которой они необходимы. Это помогает понять всем, кто работает с кодом, в котором находится переменная. Это также поможет вам избежать запутывания проблем, вызванных механизмом подъема JavaScript (какой механизм на самом деле является самой причиной, в которой ваш код не имеет значения).

+1

Это полезно знать.Я все еще делаю только простые вещи, но кто знает, может быть, я поправимся. –

Смежные вопросы