Каков объем функций?Должен ли я использовать переменные, которые уже были созданы? - PullRequest
1 голос
/ 27 марта 2019

В настоящее время я читаю первую книгу «Ты не знаешь, JS», «Вверх и вперед». Я пытаюсь построить их первое упражнение, основанное на покупке телефонов и аксессуаров, но у меня проблемы, и я не понимаю, почему. Я упростил свой код для этого конкретного сценария, чтобы посмотреть, сможет ли кто-нибудь помочь здесь. Ни одна из моих функций не работает :( Мой вывод выглядит следующим образом ::

YDKJS2.js:38 Your total purchase before taxes is: 1049.9
YDKJS2.js:42 Your total purchase after taxes is: 1049.9
YDKJS2.js:46 Your remaining account balance is: function remBalance( bal , total ){
 bal = bal - total;

 return bal;
}

Я уже пытался использовать те же переменные, которые уже были созданы, но они все еще не работают.

const SPENDING_THRESHOLD = 200;
const TAX_RATE = 0.08;
const ACCESSORY_PRICE = 9.99;
const PHONE_PRICE = 199.99;

var totalPurchase = 0;
var numberPhones = 0;
var numberAccessories = 0;
var accountBalance;

function calculateTax( amt ){
 amt = amt + (amt * TAX_RATE);

 return amt;
}

function remBalance( bal , total ){
 bal = bal - total;

 return bal;
}

accountBalance = prompt( "How much money is in your bank account right now?" );

while( totalPurchase < accountBalance ){
 totalPurchase = totalPurchase + PHONE_PRICE;

 numberPhones++;

 if( PHONE_PRICE < SPENDING_THRESHOLD ){
 totalPurchase = totalPurchase + ACCESSORY_PRICE;

 numberAccessories++;
    }

}

console.log("Your total purchase before taxes is: " +totalPurchase);

calculateTax(totalPurchase);

console.log( "Your total purchase after taxes is: " + totalPurchase );

remBalance( accountBalance , totalPurchase);

console.log("Your remaining account balance is: " +remBalance);

Ответы [ 2 ]

0 голосов
/ 27 марта 2019
const SPENDING_THRESHOLD = 200;
const TAX_RATE = 0.08;
const ACCESSORY_PRICE = 9.99;
const PHONE_PRICE = 199.99;
let totalPurchase = 0;
let numberPhones = 0;
let numberAccessories = 0;
let accountBalance = 973.17;
function calculateTax( amt ){
amt = amt + (amt * TAX_RATE);
return amt;
}
function remBalance( bal , total ){
bal = (bal - total);
return bal;
}

while( totalPurchase < accountBalance ){
totalPurchase = totalPurchase + PHONE_PRICE;
numberPhones++;
if( PHONE_PRICE < SPENDING_THRESHOLD ){
totalPurchase = totalPurchase + ACCESSORY_PRICE;
numberAccessories++;
}
}
console.log("Your total purchase before taxes is: " +totalPurchase);
totalPurchase = calculateTax(totalPurchase);
console.log( "Your total purchase after taxes is: " + totalPurchase );
accountBalance = remBalance( accountBalance , totalPurchase);
console.log("Your remaining account balance is: " + accountBalance);

Спасибо за помощь всем!:):):):):):)

0 голосов
/ 27 марта 2019

Область видимости это как область видимости для переменных / функций / и т. Д.Обычно вы работаете в глобальном масштабе.Если вы пишете код внутри функции, вы начинаете использовать область действия функции, ограниченную ее собственными переменными, функцией и т. Д. Но также, в обычном случае, у вас есть доступ к глобальной области и вы можете ее использовать.

В вашем примере вы должны проверить, где находится переменная, а где - функция.Вы используете «remBalance» без фигурных скобок, но до этого вы определили его как функцию.Поэтому его нужно использовать как «remBalance (bal, total)».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...