Существует ли этот синтаксис PHP в JavaScript?функция (var = null) - PullRequest
3 голосов
/ 26 июня 2011

В PHP у меня есть функции, устанавливающие переменные в нуль, если параметр не передан. Например:

Вызов функции:

myExample(8);

Определение функции:

function myExample($var1, $var2 = null);

Ожидаемый результат:

$var 1 = 8;
$var 2 = null;

Существует ли подобный синтаксис в JavaScript? Я пытался сделать это прямо, и это не сработало.

Ответы [ 3 ]

4 голосов
/ 26 июня 2011

Короче, нет.Вы не можете назначить значение по умолчанию в объявлении функции.

Но:

function myExample($var1, $var2) {
}

myExample(1);

приведет к тому, что $var2 будет undefined внутри функции.

1 голос
/ 26 июня 2011

Нет, это не так.

Чтобы разрешить необязательные аргументы, просто укажите их.Если они не поставляются, они определяются как неопределенные.

Например.

Func = function(arg, opt_arg)
{
    Alert(arg + ' ' + opt_arg);
}

Func('test');// gives "test undefined"

Аргументы не являются обязательными, как в php.

Вы можете просто так это

If(opt_arg  != 'undefined)

Чтобы проверить, если пользователь предоставил его

1 голос
/ 26 июня 2011

В javascript вы можете передать любое количество аргументов в функцию без необходимости их объявления.вы можете получить к ним доступ через переменные аргументы, которые похожи на массив (он имеет свойство длины, но на самом деле это объект)

вы можете сделать:

function yourfunction (var1){
    var var2 = null;
    if (arguments.length>1){
         var2 = arguments[1];
    }
}

это очень похоже нато, что вы делаете в php, потому что если вы не передадите второй аргумент, var2 будет нулевым, иначе он будет равен второму аргументу

, смотрите здесь для полной ссылки

РЕДАКТИРОВАТЬ типичным примером является функция, которая суммирует все свои аргументы, независимо от их количества.Я нашел это в нескольких книгах по javascript.Если вы хотите прочитать больше, некоторые хорошие боксы: объектно-ориентированные шаблоны javascript и javascript, сделанные Стояном Стефановым и обычным Javascript: хорошие части

  function sumValues() {
   var sum = 0;
   for (var i = 0; i < arguments.length; i++) {
    sum += arguments[i];
   } 
   return sum;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...