 
			
				10.08.2008, 23:09
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Флудер 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.07.2008 
					
					
					
						Сообщений: 1,271
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 " вставляется элемент глобальной (в данном scope) 
    // переменной arr" 
 
Вот вы и нашли глобальную переменную... 
 
Нашли??? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.08.2008, 23:12
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Флудер 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.07.2008 
					
					
					
						Сообщений: 1,271
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Если смущает str - убери её из обоих тестов... 
Оставь только a и arr. 
Ну тогда уж точно будет видно, где локальная, где глобальная... 
 
просто во втором тесте тогда нибудет никаких действий в функции: почему? - потому что я ВЫНЕС её инициализацию в глобальный контекст!!! 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.08.2008, 23:14
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Флудер 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.07.2008 
					
					
					
						Сообщений: 1,271
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Прочтите, пожалуйста, пост №11 
 
И скажите - я ответил правильно? 
 
Разве у меня в функции не идёт ОБРАЩЕНИЕ к глобальной переменной? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.08.2008, 23:36
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				  
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.02.2008 
					
					
					
						Сообщений: 1,250
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		ZoNT, 
Ваш пример наглядно показывает только то, что
 
array.push(element);
 
работает медленнее, чем
 
array[index];
 
У вас в первом примере используются только локальные переменные, а во втором - две локальные переменные (в своих контекстах), а вторая просто вставляет элемент глобальной.
 
Локальные переменные работают быстрее в любом контектсте. 
Вот два  идентичных примера, проверьте самостоятельно:
 
// Пример с локальной переменной:
function F1(){
    var a = [];
    for (var i=0;i<1000;i++) a.push(i);
}
 
var start = new Date();
for (var i=0;i<1000;i++) F1();
var res1 = (new Date())-start;
// Пример с глобальной переменной:
function F2(){
    for (var i=0;i<1000;i++) b.push(i);
}
 
start = new Date();
for (var i=0;i<1000;i++) {
    var b = [];
    F2();
}
var res2 = (new Date())-start;
 
alert([res1,res2]);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.08.2008, 23:47
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Флудер 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.07.2008 
					
					
					
						Сообщений: 1,271
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Ну ответь же мне: 
1) мой пример работает? 
2) Он на мониторе виден (в смысле существует)? 
3) Работает быстрее? 
4) "а вторая просто вставляет элемент глобальной" - к глобальной переменной обращается? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.08.2008, 23:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				  
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.02.2008 
					
					
					
						Сообщений: 1,250
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		ZoNT, 
Вы увиливаете от ответа и упорствуете в ошибке. 
Ваш пример на самом деле абсурден насколько же, насколько вот такой:
 
function F1(){
    var a = [];
    for (var i=0;i<1000;i++) a.push(i);
}
 
var start = new Date();
for (var i=0;i<1000;i++) F1();
var res1 = (new Date())-start;
 
var b = [];
for (var i=0;i<1000;i++) b.push(i);
function F2(){
    b[i];
}
 
start = new Date();
for (var i=0;i<1000;i++) { F2(); }
var res2 = (new Date())-start;
 
alert([res1,res2]);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.08.2008, 23:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				  
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.02.2008 
					
					
					
						Сообщений: 1,250
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Я не спорю, что использование глобальных переменных ускоряет выполнение некоторых конкретных задач. Но в только в общем плане, например использование одного массива несколькими функциями и т.д. Но в каждой конкретной функции вариант с локальными переменными будет работать быстрее. Вот, например: 
// Пример с глобальной переменной:
function F1(){
    for (var i=0;i<1000;i++) a.push(i);
}
var start = new Date();
for (var i=0;i<1000;i++) {
    var a = [];
    F1();
};
var res1 = (new Date())-start;
 
 
// Пример с глобальной и локальной переменной:
function F2(){
    var arr = b;
    for (var i=0;i<1000;i++) arr.push(i);
}
 
start = new Date();
for (var i=0;i<1000;i++) {
    var b = [];
    F2();
}
var res2 = (new Date())-start;
 
alert([res1,res2]);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.08.2008, 00:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Флудер 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.07.2008 
					
					
					
						Сообщений: 1,271
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Андрей Параничев
			 
		
	 | 
 
	| 
		Я не спорю, что использование глобальных переменных ускоряет выполнение некоторых конкретных задач. Но в только в общем плане, например использование одного массива несколькими функциями и т.д.
	 | 
 
	
 
 ВОТ!!!
 
Вот это я и сказал (если прочтесть ветку сначала).
 
Я привёл конкретную задачу, когда в таблице массивы определялись В ФУНКЦИИ (они были локальными). 
Я предложил их определние вынести в глобальный контекст (точно такой пример я и привёл).
 
Я не прав?
 
	
 
	
		
			Сообщение от Андрей Параничев
			 
		
	 | 
 
	| 
		Но в каждой конкретной функции вариант с локальными переменными будет работать быстрее.
	 | 
 
	
 
 Не в каждой!!! И пример я привёл в какой не будет. И топикстартер так делает и ещё куча новичков!!!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.08.2008, 00:27
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				  
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.02.2008 
					
					
					
						Сообщений: 1,250
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		ZoNT, 
Попробуйте выполнить код из сообщения  #47. Он наглядно показывает, что обработка локальных переменных (работа с ними) происходит быстрее в любом  конкретном случае.
 
Я понимаю, что вы хотели сказать сначала, но вы прицепились к совершенно верному утверждению, что работа с локальными переменными всегда будет быстрее, чем с глобальными, когда практика (и теория, которую выкладывал Дмитрий) показывает, что это верно.
 
В любом случае обсуждение зашло в тупик, давайте каждый останется при своем личном мнении на счет этого вопроса. Потому что доводы всех высказавшихся в этой теме верны в разных случаях.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Андрей Параничев, 11.08.2008 в 00:33.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.08.2008, 00:30
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Флудер 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.07.2008 
					
					
					
						Сообщений: 1,271
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Ну вы же видите пример, где НЕ ВСЕГДА локальные переменные быстрее... 
 
И вот из-за ваших с Дмитрием утверждений люди (как топикстартер) в заблуждении пишут вот такую лабуду... 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
	 | 
 
 
 |