首页 > 解决方案 > CSSStyleDeclaration 的 getPropertyValue() 和括号符号 [] 之间有区别吗?

问题描述

例如,我们需要body访问padding-right

let el = document.querySelector('body');
let style = window.getComputedStyle(el);

多亏了这个解释,很明显它可以通过以下方式安全地完成:

style.paddingRight

或者

style.getPropertyValue('padding-right')

但是,这似乎也可以正常工作:

style['padding-right']

有什么不同吗?谢谢

标签: javascriptcss

解决方案


一个区别是getPropertyValue保证返回一个字符串,而使用直接属性访问(JavaScript 的括号或点表示法)你可以获得undefined. getPropertyValue在这种情况下将返回空字符串。

let el = document.querySelector('body');
let style = window.getComputedStyle(el);

console.log(style.something === style.getPropertyValue('something')); // false


推荐阅读