Эта линия создает глобалы? - PullRequest
3 голосов
/ 30 марта 2012

Создает ли эта строка глобалы?

var first=second=third=fourth=fifth="Hello, ";

Я не совсем уверен, как это проверить:)

Ответы [ 4 ]

3 голосов
/ 30 марта 2012

first будет объявлено как локальная переменная, но остальные будут глобальными.

Чтобы это исправить, попробуйте следующее:

var first, second, third, fourth, fifth;
first = second = third = fourth = fifth = "Hello, ";

Или все в одной строке:

var first, second, third, fourth, fifth = fourth = third = second = first = "Hello, ";
2 голосов
/ 30 марта 2012

Первый будет локальным, остальные будут глобальными.Смотрите этот скрипт из JS Fiddle .

2 голосов
/ 30 марта 2012

Да, все, кроме first, являются глобальными в этом случае. Вы можете проверить в консоли вашего браузера, запустив

(function() { var x = y = 1; })();
console.log(y); // 1

Возможно, вы хотите var y, x = y = 1;

1 голос
/ 30 марта 2012

Да, объявляйте сначала свои переменные:

var first,second,third,fourth,fifth;
first=second=third=fourth=fifth="Hello, ";

Будет делать то же самое, за исключением того, что все переменные будут в ожидаемой области видимости.

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

...