Javascript if语句语法澄清

Javascript if语句语法澄清,javascript,html,Javascript,Html,代码停止工作。原因是什么?因为语法不正确 if ((name == null || name == "") name = " visitor ") 如果未正确关闭 应该是这样的 if ((name == null || name == "") name = " visitor ")" 希望这有帮助我有三点建议 正确的代码应该是 var name=prompt(“请输入您的姓名:”); 如果(名称==null | |名称==“”) { 姓名=‘访客’; } 编写(“Hi”+name+“欢迎

代码停止工作。原因是什么?

因为语法不正确

if ((name == null || name == "") name = " visitor ")
如果未正确关闭

应该是这样的

if ((name == null || name == "") name = " visitor ")"
希望这有帮助我有三点建议

  • 正确的代码应该是
  • 
    var name=prompt(“请输入您的姓名:”);
    如果(名称==null | |名称==“”)
    {
    姓名=‘访客’;
    }
    编写(“Hi”+name+“欢迎使用javascript”);
    
  • 请在javascript中使用单引号而不是双引号
  • 最好使用库来检查变量的所有错误情况。因为它也可能是未定义的。这也使它更容易阅读。您可以使用库lodash并编写
    if(u.isString(name))
  • 这是错误的语法

    它所说(和做)的是:

    name=“visitor”不是条件。这是一项任务

    在代码中,
    document.write…
    周围的大括号是无用的,对if语句没有任何作用

    您不必在单行if语句周围使用大括号,但正确的编写方法是:

    if (name == null || name == "") {
          name = "visitor";
       }
    document.write("Hi " + name + " welcome to javascript.");
    

    只有在条件之后执行的代码只有一行时,上述操作才会起作用。任何其他代码都在if之外执行。

    if的一般结构是:

    if (name == null || name == "") 
        name = "visitor";
    document.write("Hi " + name + " welcome to javascript.");
    
    条件
    表达式为true时,它将执行
    thingToDo
    中的代码。(我故意省略了可选的
    else
    子句,因为它与这个问题无关。)

    因此,在您的第一个代码块中,
    条件是
    name==null | | name==”
    thingToDo
    name=“visitor”
    。因此,如果用户输入一个空名称作为对提示的响应,它会在其位置将名称设置为
    “visitor”

    如果
    thingToDo
    包含多个语句,则必须将它们用大括号括起来,使其成为一个代码块。但是如果只是一条语句,大括号是可选的(尽管我建议使用大括号,请参见)。
    document.write()
    调用周围的大括号是不相关的,因为它在
    if
    语句之外

    您的第二次尝试是错误的,因为您已将条件更改为:

    if (condition) thingToDo
    

    这不是一个有效的表达式--您已将赋值移动到条件中,但没有运算符将其与比较连接起来。

    大括号中的代码如果((name==null | name==“”)name=“visitor”)
    应该怎么办?基本上,这就像编写
    if((true)name=“visitor”)
    。它在语法上是无效的,不表示块,并且暗示您可以执行类似于
    (true)name
    的操作并期望得到结果。为什么使用单引号而不是双引号?这只是个人风格,没有理由喜欢。不过你已经破坏了功能。
    if
    的想法是,当用户没有输入任何内容时,查看他们是否应该将
    名称
    更改为
    “访问者”
    。无论他们是否输入了任何内容,都应该将信息写出来。谢谢。。。我知道了。但我的好奇心是关于访客的部分。。括号外的条件是如何产生的?如果你打算混合使用javascript和html,使用不同的引号会更容易。我完全不同意这种说法,我在这个行业工作了多年。你在哪里看到“
    在他的代码中?@Barmar这只是一个打字错误。@Barmar只要忘记最后一个双引号,它就会有意义。@AmericanPatriot,但也没有最后一个
    。问题只是说
    name=“visitor”
    ,这不是语法错误。哦,现在我明白了。他的问题不是关于代码块中的代码,而是关于文本中的不同代码,没有突出显示以便我可以看到。
    if (name == null || name == "") name = " visitor "
    {document.write("Hi " + name + " welcome to javascript.");}
    
    if (name == null || name == "") {
          name = "visitor";
       }
    document.write("Hi " + name + " welcome to javascript.");
    
    if (name == null || name == "") 
        name = "visitor";
    document.write("Hi " + name + " welcome to javascript.");
    
    if (condition) thingToDo
    
    (name == null || name == "") name = " visitor "