-5

可能重复:
在 JavaScript 中进行简单的运输和处理计算

许多公司通常会收取购买的运费和手续费。创建一个网页,允许用户在文本框中输入购买价格,并包含一个计算运输和处理的 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 章,因此(如果)语句还不允许使用。谢谢。

4

1 回答 1

0

首先,您的三元运算符似乎很重复。有一种方法可以使它更短:

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

然后,在使用关键字之前声明变量是一个好习惯。var在这种特殊情况下,建议是无用的,因为脚本将在全局范围内执行,因此您的所有变量最终都将是全局的。

您的脚本版本连接了结果,因为返回类型为window.promptis String。当一个人试图将 a 添加String到 aNumber时,后者只是被转换为 aString并发生连接。

您可以使用内置(或)函数或添加加号显式转换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 回答