Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Преобразование простейшего скрипта (https://javascript.ru/forum/project/65962-preobrazovanie-prostejjshego-skripta.html)

Kaytoxe 17.11.2016 18:40

Преобразование простейшего скрипта
 
Всем привет, написал простенькую программу, решил её сократить до максимума (использование компрессоров не интересует). Сократил уже в 1.5 раза. Хотел спросить, какие хитрости ещё можно применить по сокращению данной проги, не жертвуя читабельностью кода и сохраняя основные модули работы (чек возраста, проверка на число, умножение). :yes:

Собсно сам код.

"use strict";
// Подключение стандарта ES5 (Esma Script 5)

// Разработка цикла для операции умножения

// Проверка возраста

for (;;) {
	var checkAge = prompt ('Ресурс предназначен для совершенолетних пользователей. Введите ваш возраст.', 'используйте клавиатуру');
	var Age;                                                                                             	   
	if ( isNaN(checkAge) ) {
		var quest = confirm('Вы ввели не число. Попробовать снова?');							   // Не числовой тип данных
		if (quest) { continue; } else { break; }											       // Повтор/Отмена цикла
	} else {
		if (checkAge < 18) {
			alert('Ресурс недоступен несовершенолетним лицам');                                    // Меньше 18 лет
			break;
		} else {
			alert('Добро пожаловать!');															   // Всё ОК!
			Age = 1;
			break;
		}
	}
}


// Тело программы

for (;;) {
	if ( isNaN(Age) ) {
		alert('Программа отклонена');                                                              // Отклонение программы
		break;
	} else {
		
		// Вычислительная часть
		
		var firNum = prompt('Первый множитель','');											       // Ввод операндов
		var secNum = prompt('Второй множитель','');
		
		if ( isNaN(firNum) ) {																       // Проверка на число ПЕРВОЕ
		var quest = confirm('Вы ввели не число. Попробовать снова?');							  
		if (quest) { continue; } else { break; }											       // Повтор/Отмена цикла
		} else {
			if ( isNaN(secNum) ) {																   // Проверка на число ВТОРОЕ
				var quest = confirm('Вы ввели не число. Попробовать снова?');							  
				if (quest) { continue; } else { break; }										   // Повтор/Отмена цикла
			} else {
				var result = firNum * secNum;
				alert( 'Произведение ' + firNum + ' и ' + secNum + ' равно ' + result );
				break;
			}
		}
	
		// Конец вычислительной части
	
	}
}

alert('Конец программы');

//The end

Kaytoxe 17.11.2016 19:02

Слыхал я что его желательно использовать всегда... Но гляжу что и без него работает всё :)

Kaytoxe 18.11.2016 02:58

Цитата:

Сообщение от Rise (Сообщение 435349)
Kaytoxe, различия между обычным и строгим режимами

Спасибо, почитал. Узнал больше!

join 18.11.2016 06:13

Цитата:

Сообщение от Rise
Kaytoxe, различия между обычным и строгим режимами

Оказывается строгий режим это не просто строчка 'use strict' в начале всего скрипта, которую пихают некоторые разрабы, а целый набор рекомендаций и нюансов со своими правилами и костылями.
Спасибо за ссылку:yes:


Часовой пояс GMT +3, время: 10:29.