2012-03-30 3 views
3

Эта линия создает глобальные переменные?Эта линия создает глобальные переменные?

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

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

+0

Вы можете проверить, есть ли что-то глобальное, глядя в 'window'. 'Console.log (window.first)'. –

+0

http://jsfiddle.net/ –

+0

@Rocket Я попробую, (btw, applejack> pinkie pie) – Yim

ответ

3

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

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

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

Может быть, вы хотите var y, x = y = 1;

+0

хороший наконечник, чтобы сделать его одним лайнером :) – Yim

+0

+1 для однострочного –

1

Да, это объявить переменные первого:

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

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

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

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