 
			
				02.09.2022, 23:21
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Alikberov, лол, потому что это запутает код ещё больше. С метками то уже ад, с цифрами - вообще полное безумие. 
 
Попади я на такой код, я бы реально задумался о рукоприкладстве вживую, а не через монитор.) 
 
 
Это тут у тебя три цикла сразу подряд и выполняют полтора действия(и то с полпинка не рабирёшься), а попробуй представить себе реальный цикл с этим дерьмом. 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Aetae, 02.09.2022 в 23:25.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.09.2022, 23:55
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.08.2018 
					
					
					
						Сообщений: 113
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Aetae
			 
		
	 | 
 
	
		Alikberov, лол, потому что это запутает код ещё больше. С метками то уже ад, с цифрами - вообще полное безумие. 
 
Попади я на такой код, я бы реально задумался о рукоприкладстве вживую, а не через монитор.) 
 
 
Это тут у тебя три цикла сразу подряд и выполняют полтора действия(и то с полпинка не рабирёшься), а попробуй представить себе реальный цикл с этим дерьмом.
	 | 
 
	
 
 Согласен, обфускация имеется. 
Но, на крайний случай такие механизмы не помешали бы, однако, с примечанием, что не рекомендуется к обильному использованию и валидаторы не пропустят, если на весь код приходится больше процента.
 
Но, правда: Иногда, в очень узких местах, указание уровня действия не помешало бы, чем вкладывать в цикл функцию с циклом и прерываться по return true/false, типа: 
for(i = 0; i < x; ++ i) {
	if(function() {
		for(j = 0; j < y; ++ j) {
			if(i == j)
				return false;
		}
	})
		continue;
}
Что ещё хуже.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Alikberov, 03.09.2022 в 00:00.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 00:38
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Alikberov, по-хорошему - разбить всё на отдельные функции с говорящими именами и вызывать одну из другой. 
Максимум для цикла двойная вложенность и то только в простых случаях. 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 14:34
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Alikberov
			
		
	 | 
 
	| 
		Почему нельзя указать число с указанием уровня вложенности для их действия?
	 | 
 
	
 
 Так label для этого и существуют. Не надо вручную считать уровень вложенности.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 14:46
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вообще в программировании существуют много спорных ситуаций, про которые есть прямо противоположные мнения. Стоит так делать или нет. С одной стороны "удобочитаемость", с другой стороны эффективность. 
Это и break, и вложенные тетрарные операции, и использование блоков для инкапсуляции переменных, и обязательное закрытие тегов в html.... 
Удобочитаемость, как мне кажется - дело привычки и понимания кода. 
 
Доходит до того, что ругань идет по поводу x | 0 для взятия целой части. Мол это не понятно, и всегда надо Math.floor. 
А вдруг, кому то не понятно x++? Тогда надо всегда х += 1; использовать? Хотя кому то и это может быть не понятно.  
Тогда уж x = x+ 1; И только так. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 14:58
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от voraa
			
		
	 | 
 
	| 
		Доходит до того, что ругань идет по поводу x | 0 для взятия целой части. Мол это не понятно, и всегда надо Math.floor.
	 | 
 
	
 
 Math.trunc() 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 15:14
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.08.2018 
					
					
					
						Сообщений: 113
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от voraa
			 
		
	 | 
 
	| 
		Так label для этого и существуют. Не надо вручную считать уровень вложенности.
	 | 
 
	
 
 Нe всегда получается придумать вразумительное имя функции, не говоря уж о метках.   
Тем более, когда тело функции синтезируется по шаблону при запуске скрипта. 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	
		Доходит до того, что ругань идет по поводу x | 0 для взятия целой части. Мол это не понятно, и всегда надо Math.floor. 
А вдруг, кому то не понятно x++? Тогда надо всегда х += 1; использовать? Хотя кому то и это может быть не понятно.  
Тогда уж x = x+ 1; И только так.
	 | 
 
	
 
 Для себя я выработал правило писать «for(i = 0; i < n; ++ i) {» вместо «for(i = 0; i < n; i++){», так как «++){» - эзотерика какая-то…
 
А «x | 0» выглядит не так интуитивно, как «x.0»…   
Тем более, в условиях форума «Math.floor(x)» - слишком громоздкая запись…  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 15:16
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2013 
					
					
					
						Сообщений: 1,572
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		voraa, 
 x | 0 - неудачный пример для js 
Math.floor - работает быстрее и с большими числами
 
const a = Math.pow(2, 52) / 3;
console.log(a, a|0, Math.floor(a));
alert((a|0) === Math.floor(a))
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 15:55
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Vlasenko Fedor
			
		
	 | 
 
	| 
		x | 0 - неудачный пример для js
	 | 
 
	
 
 Разумеется, когда это возможно (число в пределах 2**32). 
Для меня большие целые числа - экзотика.
 
	
 
	| 
		
			Сообщение от Alikberov
			
		
	 | 
 
	| 
		не так интуитивно, как «x.0»
	 | 
 
	
 
 Проблема в том, что так нельзя.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.09.2022, 16:19
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.08.2018 
					
					
					
						Сообщений: 113
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от voraa
			 
		
	 | 
 
	| 
		Проблема в том, что так нельзя.
	 | 
 
	
 
 Зa 27 лет JavaScript изменился достаточно хорошо.   
И приобрёл множество  экзотических синтаксических особенностей.
 Перегрузку операторов до сих пор не ввели.
Думаю, не было бы большой проблемой добавить подобную фишку округления до указанного порядка: 
console.log(Math.PI.0);	// 3
console.log(Math.PI.1);	// 3.1
console.log(Math.PI.2);	// 3.14
console.log(Math.PI.3);	// 3.141
console.log(Math.PI.4);	// 3.1415
console.log(Math.PI.5);	// 3.14159
 Чем выражение «Math.floor(x * 10 ** n) / 10 ** n» (иногда это требуется)… 
(Хотя Фортрановский ** ввели совсем недавно тоже.)  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Alikberov, 03.09.2022 в 16:27.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |