[ЗАПРОС ]Инициализация JavaScript — Переменных

#javascript

Вопрос:

 function calculateArea(r){
  var area;
  if (r<=0){
    return 0;
  } else {
    area=Math.PI*r*r; 
    return area; 
  }
}

var radius = 5.2; 
var theArea=calculateArea(radius);
console.log("Area = "   theArea);  

Новинка здесь, пожалуйста, дайте мне знать, если я написал неправильно.

Если инициализация переменной является функцией. Выполняется ли функция автоматически? Например, смотрите мой код ниже. Я получаю желаемый вывод в журнале консоли. Если бы я не включил эту функцию в переменную, она бы все еще работала?

    function calculateArea(r){
  var area;
  if (r<=0){
    return 0;
  } else {
    area=Math.PI*r*r; 
    return area; 
  }
}

var radius = 5.2; 
var theArea=calculateArea(radius);
console.log("Area = "   theArea); 
 

ПРАВКА: Думаю, что у меня голова не идет кругом от этого. Спасибо вам всем!

Комментарии:

1. Похоже, вы могли бы просто проверить это и посмотреть, верно?

2. Инициализация theArea переменной-это не функция, а скорее возвращаемое значение функции. Есть большое различие. Здесь не происходит ничего необычного. Вы вызываете функцию, сохраняете результат в переменной, а затем печатаете переменную. «Если бы я не включил эту функцию в переменную, она бы все еще работала?» О чем вы говорите? Вы не включаете функцию ни в какие переменные здесь. Вы просто вызываете функцию и сохраняете результат в переменной.

3. Ну, у меня есть, и да, я вижу это в журнале консоли. Но если я не запущу функцию путем инициализации переменной, будет ли функция по-прежнему выполняться в фоновом режиме или ее нужно вызывать вручную?

4. calculateArea Функция, как вы ее определили, не будет работать сама по себе. Это просто определено. Он запускается только тогда, когда вы его вызываете, например calculateArea(radius)

5. И он вызывается, потому что переменная theArea должна быть инициализирована?

Ответ №1:

если вы назовете это без каких-либо аргументов

 calculateArea()
 

r будет неопределенным, что приведет к Math.PI * r * r = number * undefined = NaN

и если вы никогда не использовали это

 var theArea=calculateArea(radius);
 

тогда функция не будет выполняться автоматически

Ответ №2:

Нет, определение функции не запускает ее автоматически. (В конце концов, если для этого потребуется аргумент, как r в вашем случае, что бы это r было?)

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

Комментарии:

1. Спасибо вам за это объяснение!