-5

重複の可能性:
JavaScriptで、単純な配送と処理の計算を行う

多くの企業は通常、購入に対して送料と手数料を請求します。ユーザーがテキストボックスに購入価格を入力できるWebページを作成し、送料と手数料を計算するJavaScript関数を含めます。スクリプトに機能を追加して、25.00ドル以下の購入に対して1.50ドルの最小配送料と手数料を追加します。$ 25.00を超える注文の場合、送料と手数料の合計購入価格に10%を加算しますが、最低送料と手数料$1.50は含まれていません。パーセンテージの計算式は、価格*パーセント/ 100です。たとえば、$ 50.00の購入価格の10%を計算する式は、50 * 10/100であり、送料と手数料は$5.00になります。注文の合計費用(購入と送料および手数料)を決定したら、

<!DOCTYPE>
<html><head>
<title>Project Two</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

<script type="text/javascript">
/*<CDATA[[*/
var salesPrice = window.prompt("Please Enter Purchase Price?", "");
minShipping = salesPrice * 1.50/100;
maxShipping = salesPrice * 10/100;
(salesPrice <= 25)? totalPrice = salesPrice + minShipping
    : totalPrice = salesPrice + maxShipping;
alert(totalPrice);
/*]]>*/
</script>
</head>

すべてのスクリプトをチェックする必要があります。まだ第2章にいるため、(if)ステートメントの使用はまだ許可されていません。ありがとう。

4

1 に答える 1

0

まず第一に、あなたの三項演算子は非常に反復的であるようです。短くする方法があります。

totalPrice = salesPrice + ( salesPrice <= 25 ? minShipping : maxShipping );

次に、キーワードを使用して変数を使用する前に、変数を宣言することをお勧めします。varこの特定のケースでは、スクリプトはグローバルスコープで実行されるため、アドバイスは役に立ちません。そのため、すべての変数がグローバルになります。

window.promptの戻り型は。であるため、スクリプトのバージョンは結果を連結しStringます。Stringそして、aをaに追加しようとするNumberと、後者はaに変換されString、連結が発生します。

組み込み(または)関数を使用するか、プラス記号を追加することStringにより、明示的にに変換できます。NumberparseIntparseFloat

<script type="text/javascript">
/*<CDATA[[*/
var salesPrice, minShipping, maxShipping, totalPrice;

salesPrice  = +window.prompt( 'Please Enter Purchase Price?', '' ),
minShipping = salesPrice * 1.5 / 100;
maxShipping = salesPrice * 10  / 100;

totalPrice  = salesPrice + ( salesPrice <= 25 ? minShipping : maxShipping );

alert( totalPrice );
/*]]>*/
</script>
于 2012-07-14T06:41:28.370 に答える