在你提供的代码中,使用的是逻辑或运算符
|,而不是短路逻辑或运算符||。在逻辑或运算符|的情况下,不会出现短路行为。
所以,无论第一个表达式
getname()返回真还是假,整个表达式!getname() | !getage() | !getsalary()都会计算所有的子表达式,并返回相应的结果。一个true为1如果第一个表达式
getname()返回真,那么后面的两个表达式!getage()和!getsalary()也会被计算,但它们的结果不会影响整个逻辑表达式的结果,因为最终的结果将由三个表达式通过逻辑或运算符|组合而成。
所以,无论后面的表达式返回真还是假,整个逻辑表达式都会继续计算所有的子表达式。
案例-利用js进行表单验证
function getname() {
if (uname.value.trim()) {
console.log('666')
return true
}
uname.placeholder = '请输入姓名'
return false
}
function getage() {
if (age.value.trim()) {
console.log('666')
return true
}
age.placeholder = '请输入年龄'
return false
}
function getsalary() {
if (salary.value.trim()) {
return true
}
salary.placeholder = '请输入工资'
return false
}
//确定按钮点击事件
btn3.addEventListener('click', e => {
//阻止提交
e.preventDefault()
document.querySelector('.add').style.opacity = 1
if (!getname() | !getage() | !getsalary()) {
e.preventDefault()
alert('请填完整信息!')
}})
1006

被折叠的 条评论
为什么被折叠?



