- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Может и детский вопрос. Но читаю, везде советуют избегать в js переменных, заданных неявно, типа a1 = value;
Если я обычно делаю примерно так...
<script>
var array = [1,3,5,7,9]
var a = 4;
search (array,a);
alert (a1);
alert (a2);
function search(array,a) { // поиск двух ближайших значений в массиве
for (var i = 0; i < array.length; i++)
{
a1 = array; a2 = array[i-1];
if (a1 > a ) { return }
}
}
</script>
Скрипт выполняется. Но, если это дурной тон, как принято возвращать переменные из функции, если я их определю в функции правильно - var a1 = ...; var a2 =...;
Переменные из функции возвращаются оператором return.
А как правильно это сделать в моём примере?
Можно в функции вместо return поставить break; и вернуть переменные в виде массива return [a1, a2] или хеша return {a: a1, b: a2}.
Или прямо в вашем return вернуть массив или хеш, поставив return [a1, a2] или что там вам нужно вернуть.
Область видимости будет та, где объявите переменные.
Возвращаете массив так же как и одну переменную.
Понял. Спасибо!
А чем чреват мой вариант?
У меня много скриптов работают так. Вроде проблем не возникало...
Если много будет переменных - запутаетесь.
На самом деле такой принцип работы с переменными тоже возможен. Он считается некрасивым, но иногда без одной глобальной переменной никак не обойтись.
Он считается некрасивым
Ну это же лирика...
Насколько я понимаю, количество глобальных переменных по возможности надо свести к минимуму. Чтоб не пересекались.
Если на странице много скриптов, и каждый программер оставил кучу неявных или глобальных переменных - может начаться конфликт..
Мой более корректный вариант тогда будет выглядеть вот так...
<script>
var array = [1,3,5,7,9]
var a = 4;
var result = search(array,a);
var a1 = result[0]; var a2 = result[1];
alert (a1);
alert (a2);
function search(array,a) { // поиск двух ближайших значений в массиве
for (var i = 0; i < array.length; i++)
{
var a1 = array; var a2 = array[i-1];
if (a1 > a ) { return [a1, a2] }
}
}
</script>
---------- Добавлено 16.03.2015 в 16:57 ----------
Проверяю свою скрипты... кое где корректирую...
Ещё нашёл похожие накладки, только не при возврате из функции, а наоборот, при передаче в дальнюю функцию.
Вот упрощённый пример.
Вынужден был обьявить A и B без var, чтоб они были доступные в функции show(). в F1() они не используется.
Как правильно передать A и B в такой ситуации?
<script>
function summa()
{
A = 2; B = 3;
F1();
}
function F1()
{
var c = 4;
show(c);
}
function show(c)
{
var d = 5;
var e = A + B + c + d ;
alert (e);
}
summa () ; // есть сумма = 14
</script>
Блин... торможу.. Тут всё проще. Извиняюсь.
<script>
function summa()
{
var A = 2; var B = 3;
F1(A,B);
}
function F1(A,B)
{
var c = 4;
show(A,B,c);
}
function show(A,B,c)
{
var d = 5;
var e = A + B + c + d ;
alert (e);
}
summa () ; // есть сумма = 14
</script>
Всем спасибо! Вопрос закрыт.