Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2017, 13:08
Новичок на форуме
Отправить личное сообщение для Tertremo Посмотреть профиль Найти все сообщения от Tertremo
 
Регистрация: 04.11.2015
Сообщений: 3

Вопрос по функции
Здравствуйте, извините за глупый вопрос. Начал изучать 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:28. Причина: Оформление кода
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2017, 13:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

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

var test;
alert(test);
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2017, 13:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,737

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

Во втором случае твоя функция якобы ничего не принимает, но создает переменную с именем price и значением undefined;
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2017, 13:59
Новичок на форуме
Отправить личное сообщение для Tertremo Посмотреть профиль Найти все сообщения от Tertremo
 
Регистрация: 04.11.2015
Сообщений: 3

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

Выдает NaN но при этом засчитывает правильное решение.
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2017, 14:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Tertremo
Выдает NaN
Потому как аналогично такому

var price;
alert(price * 5);


P.S.
Не забывай форматировать свой код.
http://javascript.ru/formatting
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2017, 14:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Цитата:
NaN

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

Как правило, оно используется для обозначения ошибки при математических операциях.
https://javascript.ru/NaN
Ответить с цитированием
  #7 (permalink)  
Старый 02.08.2017, 14:33
Новичок на форуме
Отправить личное сообщение для Tertremo Посмотреть профиль Найти все сообщения от Tertremo
 
Регистрация: 04.11.2015
Сообщений: 3

Спасибо, извините за беспокойство.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции страницы из расширения chrome nontxt Events/DOM/Window 0 09.02.2015 10:42
Скобки после имени функции. В чем разница, если они есть и если их нет? jsuse Общие вопросы Javascript 2 19.11.2011 16:11
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
вопрос по функции replace() bushstas Общие вопросы Javascript 3 20.02.2010 16:57