CSSStyleDeclaration 的 getPropertyValue() 和括号表示法 [] 之间有区别吗?

Max*_*ore 6 javascript css

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

let el = document.querySelector('body');
let style = window.getComputedStyle(el);
Run Code Online (Sandbox Code Playgroud)

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

style.paddingRight
Run Code Online (Sandbox Code Playgroud)

或者

style.getPropertyValue('padding-right')
Run Code Online (Sandbox Code Playgroud)

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

style['padding-right']
Run Code Online (Sandbox Code Playgroud)

有什么区别吗?谢谢

tri*_*cot 11

一个区别是getPropertyValue保证返回一个字符串,而与直接财产访问(JavaScript的支架或点符号),你可以得到undefinedgetPropertyValue在这种情况下将返回空字符串。

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

console.log(style.something === style.getPropertyValue('something')); // false
Run Code Online (Sandbox Code Playgroud)