Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.11.2016, 18:40
Новичок на форуме
Отправить личное сообщение для Kaytoxe Посмотреть профиль Найти все сообщения от Kaytoxe
 
Регистрация: 17.11.2016
Сообщений: 3

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

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

"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 в 18:46. Причина: Не читабельно
Ответить с цитированием
  #2 (permalink)  
Старый 17.11.2016, 18:47
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Kaytoxe Посмотреть сообщение
"use strict"; // Подключение стандарта ES5 (Esma Script 5)
Это не подключение стандарта а строгий режим оно те надо?
Ответить с цитированием
  #3 (permalink)  
Старый 17.11.2016, 19:02
Новичок на форуме
Отправить личное сообщение для Kaytoxe Посмотреть профиль Найти все сообщения от Kaytoxe
 
Регистрация: 17.11.2016
Сообщений: 3

Слыхал я что его желательно использовать всегда... Но гляжу что и без него работает всё
Ответить с цитированием
  #4 (permalink)  
Старый 17.11.2016, 19:20
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Kaytoxe, различия между обычным и строгим режимами
Ответить с цитированием
  #5 (permalink)  
Старый 17.11.2016, 19:51
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Kaytoxe,
alert(isNaN('')); // пустая строка пройдет проверку на число

alert(isNaN(parseInt(''))); // а так уже не пройдет

Последний раз редактировалось Rise, 17.11.2016 в 19:55.
Ответить с цитированием
  #6 (permalink)  
Старый 18.11.2016, 02:58
Новичок на форуме
Отправить личное сообщение для Kaytoxe Посмотреть профиль Найти все сообщения от Kaytoxe
 
Регистрация: 17.11.2016
Сообщений: 3

Сообщение от Rise Посмотреть сообщение
Kaytoxe, различия между обычным и строгим режимами
Спасибо, почитал. Узнал больше!
Ответить с цитированием
  #7 (permalink)  
Старый 18.11.2016, 06:13
Аватар для join
Профессор
Отправить личное сообщение для join Посмотреть профиль Найти все сообщения от join
 
Регистрация: 05.03.2012
Сообщений: 477

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение из одного скрипта во второй eidicon Общие вопросы Javascript 12 04.05.2012 21:34
Создание с помощью скрипта html элемента Anastasiya Общие вопросы Javascript 4 25.10.2011 22:28
Найти элемент ниже скрипта Vladislav_V Javascript под браузер 8 12.01.2011 08:47
Круговорт скрипта.... Karl Общие вопросы Javascript 1 17.10.2009 15:37
Блок переключения меню на JS, два скрипта в одном файле Dizeloid Элементы интерфейса 0 30.07.2009 12:03