Что происходит, когда я вызываю функцию JavaScript, которая берет параметры, не предоставляя те параметры?

def local_to_utc(t):
    secs = time.mktime(t)
    return time.gmtime(secs)

def utc_to_local(t):
    secs = calendar.timegm(t)
    return time.localtime(secs)

Источник: http://feihonghsu.blogspot.com/2008/02/converting-from-local-time-to-utc.html

использование В качестве примера от bd808: Если Ваш источник datetime.datetime объект t, звоните как:

local_to_utc(t.timetuple())
37
задан Krummelz 4 December 2009 в 12:31
поделиться

5 ответов

Не определено. Вы не получите исключения. Это может быть удобный способ сделать вашу функцию более универсальной в определенных ситуациях. Undefined принимает значение false, поэтому вы можете проверить, было ли передано значение.

36
ответ дан 27 November 2019 в 04:51
поделиться

JavaScript установит для любых отсутствующих параметров значение undefined .

function fn(a) {
    console.log(a);
}

fn(1); // outputs 1 on the console
fn(); // outputs undefined on the console

Это работает для любого количества параметры.

function example(a,b,c) {
    console.log(a);
    console.log(b);
    console.log(c);
}

example(1,2,3); //outputs 1 then 2 then 3 to the console
example(1,2); //outputs 1 then 2 then undefined to the console
example(1); //outputs 1 then undefined then undefined to the console
example(); //outputs undefined then undefined then undefined to the console

также обратите внимание, что массив arguments будет содержать все предоставленные аргументы, даже если вы предоставите больше, чем требуется по определению функции.

15
ответ дан 27 November 2019 в 04:51
поделиться

Существует обратный ко всем ответ в том, что вы можете вызвать функцию, которая не имеет параметров в сигнатуре с параметрами.

Затем вы можете получить к ним доступ, используя встроенный ] arguments global. Это массив, из которого вы можете получить подробную информацию.

например

function calcAverage() 
{ 
   var sum = 0 
   for(var i=0; i<arguments.length; i++) 
      sum = sum + arguments[i] 
   var average = sum/arguments.length 
   return average 
} 
document.write("Average = " + calcAverage(400, 600, 83)) 
7
ответ дан 27 November 2019 в 04:51
поделиться

В дополнение к комментариям выше, массив arguments имеет нулевую длину. Можно исследовать его, а не параметры, указанные в сигнатуре функции.

3
ответ дан 27 November 2019 в 04:51
поделиться

Вы получите исключение, как только попытаетесь использовать один из параметров.

-8
ответ дан 27 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: