<script ="javscript"/>
function checkQuantity()
{
function noCharge(intQuantity){
if (intQuantity > 100) {
return true;
}
if (intQuantity < 100) {
return false;
}
return true;
}
checkQuantity=parseInt(prompt("Please enter the quantity of light bulbs",""))
if ((intQuantity)==true)
{
alert("Your light bulbs will arrive shortly. There is NO delivery charge")
}
else if ((intQuantity)==false)
{
alert("Your light bulbs will arrive shortly. There will be a delivery charge of £5.99")
}
else
{
alert("Please enter an amount")
}
}
</script>
0
A
回答
1
您的代碼有一些錯誤。
入住這live example
function checkQuantity() {
function noCharge(intQuantity) {
if (intQuantity > 100) {
return true;
}
if (intQuantity < 100) {
return false;
}
return true;
}
var amount = noCharge(parseInt(prompt("Please enter the quantity of light bulbs", "")));
if (amount == true) {
alert("Your light bulbs will arrive shortly. There is NO delivery charge")
}
else if (amount == false) {
alert("Your light bulbs will arrive shortly. There will be a delivery charge of £5.99")
}
else {
alert("Please enter an amount")
}
}
checkQuantity();
1
兩個顯而易見的問題(當然,有兩件事合作,導致同樣的錯誤):
- 你永遠叫
noCharge
。而不是if ((intQuantity) == true)
,你應該說if (noCharge(intQuantity) == true)
(或更好,if (noCharge(intQuantity))
...見下文)。 (intQuantity)
只要它不是false
,null
,undefined
或0就可以了。就你而言,這是絕大多數時間。
和一對夫婦的風格調:
- 如果你返回一個布爾值,你真的沒有把它比任何東西。而不是說
if (noCharge(intQuantity) == true
,你可以只說if (noCharge(intQuantity))
。要查看是否有錯誤,請使用!
運算符,如if (!noCharge(intQuantity))
。 - 您也不必比較兩次。布爾值是真或假。
else if...
部分可以替換爲else
,你可以完全擺脫第三部分。 - 您在
noCharge
中的規則比他們的要複雜得多。當且僅當數量至少爲100時,當前函數才返回true。由於>=
涵蓋了這一點,因此可以將代碼縮減爲一行:return (intQuantity >= 100)
。 - 匈牙利符號已死亡。讓它安息吧。
與所有的固定:
function checkQuantity() {
function noCharge(quantity) {
return (quantity >= 100);
}
var quantity = parseInt(prompt("Quantity:", ""));
if (noCharge(quantity)) {
alert("No delivery charge");
} else {
alert("Delivery charge of $5.99");
}
}
我個人不因功能懶得檢查是否東西至少100 ......但如果規則我可以看到使用了它變得更加複雜。
相關問題
- 1. 設置輸入字段的值時,它只是短暫出現。
- 2. 即使它識別輸入,TableView不會更新數據?
- 3. PHP - 值賦值給一個變量只有當它不存在虛假
- 4. 當它不是一個標識符時找不到標識符?
- 5. 只有當它包含某個值時,纔會重置值
- 6. 只有當它是一個指針
- 7. 設計 - 有時一個對象是 - 一個,有時它不是
- 8. 只有當它被設置時才獲取字符串值c#
- 9. 如何增加一個計數器只有當它是一個新的會話?
- 10. PHP只有當它不是另一個子字符串的一部分時纔會找到子字符串
- 11. 選擇輸入/字符串,而不是它的所有
- 12. 當我輸入一個負數時,它會打印'抱歉'而不是絕對數字,我做錯了什麼?
- 13. 當字段爲空時,它會輸出一個空行
- 14. Firefox不會$ _POST所有重複的區域值,它只發布最後一個
- 15. Rails:設置一個私有值,所以它只能調用數據庫一次
- 16. 它是否會有多個自動識別
- 17. 一個Python「一切」關鍵字,它總是返回true入會測試
- 18. 當菜單是鼠標懸停時,它會消失,當我點擊一個輸入,我把它放在焦點
- 19. 當它不是一個對象時,Angular.js $ resouce不會JSONify postData?
- 20. 爲什麼vim不會識別vimrc中的插件命令,但它在運行時會識別它?
- 21. 兩個用戶輸入是不同的,但程序識別它們相同
- 22. 有一個輸入的字段取決於其它輸入
- 23. Rails.blank?當它不應該返回true時
- 24. 識別一個數字是連續輸入兩次
- 25. 只有當它是數組中的最後一個時,視頻纔會「結束」淡入淡出
- 26. 讓java檢查輸入的行,看它是否只有字母。
- 27. 一個UU分析器只識別空字符串輸入?
- 28. 代碼塊不會識別它寫入的類的頭部?
- 29. 字典中的隨機密鑰在作爲輸入輸入時無法識別它的值
- 30. vb.net:如何調用一個函數,只有當它存在時
不應該「javscript」是「JavaScript」? – 2011-05-09 21:53:53
感謝您注意到,我很抱歉 – Cool66 2011-05-09 21:54:31
它說intQuantity還未定義=/ – Cool66 2011-05-09 21:55:14