Javascript 条件语句速记的一个问题

Javascript 条件语句速记的一个问题,javascript,if-statement,passwords,conditional-statements,conditional-operator,Javascript,If Statement,Passwords,Conditional Statements,Conditional Operator,我有一个条件语句,我正在尝试使用速记 正如您看到的,当我进入else时,我不知道如何使passwordMatchError.setAttribute(“id”,“error”)与passwordMatchError.textContent=(“密码不匹配。请重新键入”) 我试着用+、| |和&&三个符号,但都不起作用 你们能帮帮我吗 非常感谢 const checkThePassword=(注册)=>{ 让getTheOriginalPassword=registration.password

我有一个条件语句,我正在尝试使用速记

正如您看到的,当我进入else时,我不知道如何使
passwordMatchError.setAttribute(“id”,“error”)
passwordMatchError.textContent=(“密码不匹配。请重新键入”)

我试着用+、| |和&&三个符号,但都不起作用

你们能帮帮我吗

非常感谢

const checkThePassword=(注册)=>{
让getTheOriginalPassword=registration.password.value;//按值分配密码,如果内存不受保护,请在此处避免常量
让getTheRetypedPassword=registration.retypedpassword.value;
//对重新键入的密码进行简单的相等性检查
getTheOriginalPassword==getTheRetypedPassword?passwordMatchError.setAttribute(“id”,“错误”):passwordMatchError.textContent=(“密码不匹配。请重新键入”);
//错误返回与错误处理一起完成

}
您可以将返回部分用括号括起来,最后返回布尔值

请使用带有
if
语句的显式编程

const checkThePassword = (registration) => {
    let getTheOriginalPassword = registration.password.value; //assign passwords by value, avoid const here in case of unprotected memory
    let getTheRetypedPassword = registration.retypedpassword.value;
    // Simple equality check for retyped password
    return getTheOriginalPassword === getTheRetypedPassword
        ? (passwordMatchError.setAttribute("id", "error"), true)
        : (passwordMatchError.textContent = ("Password does not match. Please retype."), false);
}

可以将返回部分用括号括起来,最后返回布尔值

请使用带有
if
语句的显式编程

const checkThePassword = (registration) => {
    let getTheOriginalPassword = registration.password.value; //assign passwords by value, avoid const here in case of unprotected memory
    let getTheRetypedPassword = registration.retypedpassword.value;
    // Simple equality check for retyped password
    return getTheOriginalPassword === getTheRetypedPassword
        ? (passwordMatchError.setAttribute("id", "error"), true)
        : (passwordMatchError.textContent = ("Password does not match. Please retype."), false);
}

如果您想使用条件运算符将所有内容压缩成一行,这是可能的,因为赋值计算为表达式(不幸的是),但它非常不可读,我强烈建议您不要这样做:

getTheOriginalPassword === getTheRetypedPassword
  ? '' // do nothing... unused expression
  : ( // squash two "statements" which can be evaluated as expressions into a single expression:
    passwordMatchError.setAttribute("id", "error"), // use the comma operator
    passwordMatchError.textContent = ("Password does not match. Please retype.")
  )

它在语法上是有效的,可以做你想要做的事情,但它是可怕的代码。请考虑使用原始代码。当您想要有条件地构造表达式时,最好只使用条件运算符-如果您想要有条件地运行语句,请使用
if
/
else

如果您想要使用条件运算符将所有语句压缩成一行,这是可能的,因为赋值计算为表达式(不幸的是),但它很难读懂,我强烈建议不要:

getTheOriginalPassword === getTheRetypedPassword
  ? '' // do nothing... unused expression
  : ( // squash two "statements" which can be evaluated as expressions into a single expression:
    passwordMatchError.setAttribute("id", "error"), // use the comma operator
    passwordMatchError.textContent = ("Password does not match. Please retype.")
  )

它在语法上是有效的,可以做你想要做的事情,但它是可怕的代码。请考虑使用原始代码。当您想要有条件地构造表达式时,最好只使用条件运算符-如果您想要有条件地运行语句,请使用
if
/
else

Ok。很高兴知道。我认为使用速记保持代码干净是一种很好的做法,一些网站建议使用速记。如果你明白我的意思的话,这让我们有点困惑,我们是否应该遵循。在这种情况下,我会听从你的建议。很高兴知道。我认为使用速记保持代码干净是一种很好的做法,一些网站建议使用速记。如果你明白我的意思的话,这让我们有点困惑,我们是否应该遵循。在这种情况下,我会听从你的建议。谢谢你的建议。我不知道使用if-else的速记是一种可怕的坏习惯。至少现在我学到了两件事。谢谢你的建议。我不知道使用if-else的速记是一种可怕的坏习惯。至少现在我学到了两件事。