Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по функции (https://javascript.ru/forum/misc/69997-vopros-po-funkcii.html)

Tertremo 02.08.2017 13:08

Вопрос по функции
 
Здравствуйте, извините за глупый вопрос. Начал изучать JS, прохожу курс на Codecademy, наткнулся на задачку JavaScript - Section 2-1 написать функцию подсчета цены апельсинов:
orangeCost = function (price){
var cost = price * 5;
console.log(cost);
};
orangeCost(prompt("price"));
вопрос, почему не работает функция если я переменную price объявляю внутри функции или снаружи, вот так например:

orangeCost = function (){
var price;
var cost = price * 5;
console.log(cost);
};
orangeCost(prompt("price"));

ksa 02.08.2017 13:27

Цитата:

Сообщение от Tertremo
почему не работает функция если я переменную price объявляю внутри функции

Ответ очевиден... Объявление переменной не есть присваивание ей значения. ;)

var test;
alert(test);

Nexus 02.08.2017 13:30

https://learn.javascript.ru/function-basics#параметры
price - это аргумент, который передается функции.

Во втором случае твоя функция якобы ничего не принимает, но создает переменную с именем price и значением undefined;

Tertremo 02.08.2017 13:59

Понял :)
А можно еще вопросик
var orangeCost = function (price){
var cost = price * 5;
return console.log(cost);
};
orangeCost();
var price = prompt("Введите количество апельсинов");

Выдает NaN но при этом засчитывает правильное решение.

ksa 02.08.2017 14:12

Цитата:

Сообщение от Tertremo
Выдает NaN

Потому как аналогично такому

var price;
alert(price * 5);


P.S.
Не забывай форматировать свой код.
http://javascript.ru/formatting

ksa 02.08.2017 14:15

Цитата:

NaN

Не-Числовое значение

Как правило, оно используется для обозначения ошибки при математических операциях.
https://javascript.ru/NaN

Tertremo 02.08.2017 14:33

Спасибо, извините за беспокойство.


Часовой пояс GMT +3, время: 17:18.