计算此行时出现错误:
color && el.style.color = color;
到底怎么回事?DOM level 2属性现在是“只读的”吗?
发布于 2012-05-27 16:22:40
问题是precedence,你需要加括号:
function log(msg, color) {
var el = document.createElement('p');
el.innerText = msg;
document.getElementById('log').appendChild(el);
color && (el.style.color = color);
}
&&
比=
具有更高的优先级,因此如果没有括号,您最终将尝试为表达式赋值(例如,它有效地读取(color && el.style.color) = color;
),这当然是您不能做到的。
发布于 2012-05-27 16:20:18
我同意Mark Linus的观点,不过您也可以重写代码以
color && (el.style.color = color)
发布于 2021-08-13 13:04:54
如果您使用的是"?.“可选链运算符,则必须将其删除。
示例:
//wrong
el?.style?.color = color;
//ok
el.style.color = color;
https://stackoverflow.com/questions/10775424
复制