2015-04-16 2 views
5

Я новичок в JavaScript, и мне было интересно, является ли объявление переменных, а затем инициализация сразу после объявления, является лучшей практикой. Например:Должен ли я объявлять переменные JavaScript, а затем инициализировать сразу после?

var x = 5 ; 
var y = 6 ; 

Вместо:

var x , y ; 

x = 5; 
y = 6 ; 
+0

Это зависит от вашего варианта использования этих переменных. –

+5

Это действительно не имеет значения в JS. Пока вы их инициализируете, прежде чем ссылаться на них. – 4Dev

+1

* «Инициализация сразу после объявления является лучшей практикой» *. Нет, это не так. Если вы знаете значение переменной, лучше объявить и инициализировать ее сразу. – dfsq

ответ

1

Как это делается не влияет на выполнение в любом случае, и это просто вопрос о читабельности.

Если у вас есть желание объявить, тогда назначьте отдельно, непременно сделайте это.

Если вы не, используя локальные переменные области, такие как var banana, как и в классах, есть эффект на выполнение (но едва).

пример: это, вероятно, легче читать, (но это личное мнение) и требует меньше операций

var Foo = Class.reate(); 
Foo.prototype = { 
    hoge : 1, 
    fuga : 2, 
    initialize : function(){ 
    } 
}; 

, чем это:

var Foo = Class.reate(); 
Foo.prototype = { 
    hoge:null, 
    fuga:null, 
    initialize : function(){ 
     this.hoge = 1; 
     this.fuga = 2; 
    } 
}; 
+2

Хорошо ответьте, но я бы не привел «классы» »(функции, подрабатывающие как классическое наследование), так как он должен запутать новичка. – max

+0

@papirtiger Я согласен, что они могут ввести в заблуждение новичков, но поскольку они являются областью фактической разницы в операциях при использовании переменных в качестве свойств, я понял, что для краткости было бы полезно включить его. –

+1

Путаница - первый шаг к пониманию, спасибо миллиону ребят !!! – Patrick

3

Как вы на самом деле объявить переменные является вопрос предпочтения. Если вы объявляете несколько переменных друг за другом, вы можете опустить ключевое слово var и вместо этого использовать запятые для продолжения инструкции.

var x = 2, 
    y = 3; 

Если я использую одну переменную при назначении другой, мне нравится разбивать объявление и присваивание для удобочитаемости.

var x = 2, 
    y = x + 3; 

против
var x, y; 
x = 2; 
y = x + 3; 

Опять же, это всего лишь предпочтение, поскольку любой переменной в JavaScript может использоваться, как только он объявлен - даже в том же var заявлении.

Важно помнить, что переменные в javascript имеют область видимости функции, а не область блока, обычно встречающуюся на других языках (до тех пор, пока не будет доступен ES6 version javascript).

(function(){ 
 
    var x = 1; 
 
\t 
 
    for (var i = 0; i < 10; i++) { 
 
    var x = i; 
 
    } 
 
\t 
 
    (function(){ 
 
    var x = 999; 
 
    }()); 
 

 
    alert(x); // 9! 
 
}());

Javascript гуру Douglas Crockford recommends, что определения переменных перечислены в верхней части каждой функции, чтобы сделать этот дополнительный очевидным для программистов, используемых для языков с правильной блочной области.

+1

Я знаю, что у этого вопроса есть принятый ответ, но я чувствовал, что на него можно ответить лучше, чем принятый ответ. – max

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