否则,如果 JavaScript

else if javascript

本文关键字:JavaScript 如果 否则      更新时间:2023-09-26

>我有一个简单的函数,应该提示用户输入公司名称,然后是一个确认消息框,询问用户"你今天想订购网页设计包吗?问题在于我的"如果"和"否则如果"语句。当用户单击"确定"时,"if"语句应显示一个警告框"感谢您的订单";以及"else if"语句,当用户单击"取消"时,该语句应显示一个警报框"我们感谢您的时间"。该函数由 onClick 脚本调用。出现提示和确认框,但我无法弄清楚为什么我的 if 和 else if 框没有出现。我错过了什么?任何帮助,不胜感激。谢谢。

<SCRIPT language = "Javascript">
function submitOrder() {
var companyName = prompt("Please enter company name.", "")
var willOrderPackage = confirm("Would you like to order a Web Design package today?")
if (willOrderPackage == "true") {
   alert("Thank you for your order.")
}else if{
   alert("We appreciate your time.")
}
</SCRIPT>

实际上有两个不同的如果。其他构造。第一个是一个简单的if-else:

if ( condition ) {
   // Do stuff if condition is true
} else {
   // Do stuff if condition is not true
}

下一个是 if-else-if:

if ( condition ) {
   // Do stuff if condition is true
} else if ( differentCondition ) {
   // Do stuff if differentCondition is true
} else {
   // Do stuff if neither condition nor differentCondition is true
}

您也可以根据需要多次使用 else,例如:

if ( condition ) {
   // Do stuff
} else if ( condition2 ) {
   // etc
} else if ( condition3 ) {
   // etc
} else if ( condition4 ) {
   // etc
} else {
   // etc
}

以及如果..else 是可选的,初始 if 块除外。因此,如果您不想在condition不为真的情况下执行任何操作,则可以完全省略 else 块:

if ( condition ) {
   // do stuff if condition is true
}

暂时超越您的问题,在 if 语句的条件中计算的表达式有点摇摆不定。

willOrderPackage 将始终是truefalse,但重要的是要注意true"true"false"false"是不同的。第一个是布尔值,第二个是字符串。

因此,您的 if 语句应该询问:

if ( willOrderPackage == true ) {

更好的是,当您在 if 语句中计算表达式时,其末尾有一个不可见的隐含== true。例如:

if ( willOrderPackage == true ) {

将被解释为:

if ( (willOrderPackage == true) == true )

这样做的好处是,您实际上可以从代码中省略整个== true位,因此您只需编写:

if ( willOrderPackage ) {

实际上,您仍然在说"如果willOrderPackage是真的">

希望这有助于为您澄清一些事情!

你的else if没有条件,请使用else

如前所述

if (willOrderPackage == "true") {
alert("Thank you for your order.")

是错误的:willOrderPackage 是一个布尔值,所以它可以

(willOrderPackage == true)

甚至更好

(willOrderPackage)

最好使用:

if (willOrderPackage) {

而不是:

if (willOrderPackage == "true") {

更改为:

if (willOrderPackage) {
   alert("Thank you for your order.")
}else{
   alert("We appreciate your time.")
}

这是正确完成的方式:

<script type="text/javascript">
function submitOrder() {
    var companyName = prompt("Please enter company name.", "");
    var willOrderPackage = confirm("Would you like to order a Web Design package today?");
    if (willOrderPackage) {
        alert("Thank you for your order.");
    }else{
        alert("We appreciate your time.");
    }
}
</script>

我做的事情:

  • 现代化的编码风格
  • 切换到类型属性而不是语言
  • 在每个结束行上添加了分号
  • 删除了多余的if关键字
  • 添加了最初缺少的右大括号
  • 删除了与字符串 true 的比较,与布尔值的比较不需要这个