【发布时间】:2021-11-17 11:48:48
【问题描述】:
这里是新手。感谢您的帮助。
我想知道我可以改变 if ...else ... to 吗? : 以下代码中的声明:
https://codepen.io/lgtits/pen/MWoqPBX?editors=1010
list.addEventListener('click', function (event) {
let target = event.target
if (target.classList.contains('delete')) {
let parentElement = target.parentElement
parentElement.remove()
} else if (target.tagName === 'LABEL') {
target.classList.toggle('checked')
}
})
就像这样:
let a = 1
let b = 2
if(a>b) {
console.log('bigger')
} else if (a === b) {
console.log('equal')
} else {
console.log('smaller')
}
a > b ? console.log('bigger') :
a === b ? console.log('equal') :
console.log('smaller')
【问题讨论】:
-
那里没有
else,所以?:没有多大意义。该代码也不会产生像?:那样的值,所以它是不合适的。 -
第一个示例中没有其他内容,但您可以这样做
target.classList.contains('delete') && target.parentElement.remove() -
这能回答你的问题吗? Multiple Ternary Operators
-
在询问您是否可以之前,您应该考虑您是否应该... 越短不一定越好。三元语句可以使短赋值更紧凑,但对于像这样较长的块,只需使用
if/else。 -
答案是否。三元语句用于返回一个值。由于您不是在生成值,而是在执行函数,因此在这种情况下不适合使用。
标签: javascript