Javascript 条件语句速记的一个问题
我有一个条件语句,我正在尝试使用速记 正如您看到的,当我进入else时,我不知道如何使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
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的速记是一种可怕的坏习惯。至少现在我学到了两件事。