Переменная без переменной - PullRequest
1 голос
/ 24 июня 2011

Относительно Локальные переменные ...

function foo(){var x = 1;  ...}

... и Глобальные переменные , ...
(глобальные, пример 1)

function foo(){x = 1;  ...}

(глобальный, пример 2)

var x=1; function foo(){...}

... единственное (простое) оставленное сочетание:

x=1; function foo{...}

... которое япротестировано и замечено, что оно также создает глобальную переменную (как в примере 2), но есть ли практическая причина для этого последнего примера? Примечание: я обычно люблю следовать соглашениям и писать читаемый код и держаться подальше от "странностей".

1 Ответ

3 голосов
/ 24 июня 2011

Это потому, что JavaScript - это динамический язык.Это позволяет вам использовать переменную, не объявляя ее.Вы должны всегда объявлять переменные, чтобы избежать путаницы, как вы обсуждали.JSLint / JSHint будет жаловаться, если вы этого не сделаете.

Ваш "(глобальный, пример 1)" неправильный.это не создает глобальную переменную.

function foo() { x = 1; }
function bar() { 
   alert(x);
}
foo();
bar();

edit я ошибся.http://jsfiddle.net/awuzA/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...