Javascript中使用的JQuery MarginRight和CSS MarginRight之间有什么区别?

Javascript中使用的JQuery MarginRight和CSS MarginRight之间有什么区别?,javascript,jquery,css,Javascript,Jquery,Css,jquerymarginright与在Javascript中使用CSS marginRight属性有什么区别 用marginRight我可以做这样的事情 一些我可以做的操作 为什么jQuery允许像marginRight和marginRight这样的样式操纵?从jQuerymarginRight转换到CSS页边距right不是需要更多的资源吗 你如何决定什么时候使用合适 两者都是相同的,jQuery理解这两种格式 此外,jQuery同样可以解释 多个单词属性。例如,jQuery理解并返回 .cs

jquerymarginright与在Javascript中使用CSS marginRight属性有什么区别

marginRight我可以做这样的事情

一些我可以做的操作

为什么jQuery允许像marginRight和marginRight这样的样式操纵?从jQuerymarginRight转换到CSS页边距right不是需要更多的资源吗


你如何决定什么时候使用合适

两者都是相同的,jQuery理解这两种格式

此外,jQuery同样可以解释 多个单词属性。例如,jQuery理解并返回
.css(“背景色”)
.css的正确值(
“背景色”)

访问这些css属性的这两种语法已经存在于jQuery之外。例如:

在CSS中:

#elm {margin-right: value;}
在香草JS中:

document.getElementById('elm').style.marginRight = value;
为了让两个阵营都满意并保持现有的范例,需要支持这两种语法

至于速度,我建议[尽管我还没有做过测试]骆驼壳版本会更快,因为这是他们在内部设置/获取这些值的方式


@jack pattishall jr制作了一个jsperf->

有些人更喜欢CamelCase(marginRight),有些人更喜欢连字符系统(marginRight)

我认为一切都与项目的命名约定有关。就这些

读这个

据我所知,连字符系统是CSS本机系统。但由于其他语言(如javascript或php)不支持变量名称中的连字符,CamelCase是一个很好的替代方案,可以简化开发

要真正回答您的问题:我认为这对jQuery来说并不是什么大问题,但由于它可能会修改javascript样式属性,我想它最终会使用CamelCase。但是我假设它在转换之前不检查名称中的连字符,它可能总是通过convert函数来完成这项工作。所以我不认为一个比另一个快



编辑:我所说的“项目命名约定”的意思是,您为给定语言选择一种解决方案所获得的时间可能会浪费在为另一种语言转换操作上。我想CamelCase可以解决这个问题,但它不是纯CSS中的本机系统。

CSS属性带有
-
在Javascript中使用时被写成CamelCase属性。所以两者本质上是相同的属性。检查一个是否比另一个快可能是有趣的。jQuery是否在幕后(regex?)做了一些事情来优化camelCase而不是连字符分隔?或者,反之亦然?下面是我拼凑的一个快速的
jsperf
,它显示camelCase比hyphen(至少在Chrome中)快@JackPattishallJr.:就像很多事情一样,这在实践中几乎没有任何关联…@JackPattishallJr我更新了您的
jsperf
以添加下划线系统。Chrome的速度似乎更快。不过,我没想到会有这样的结果。@CBroe-虽然这是真的,但它至少可以帮助开发人员在各种选择之间证明他们的实现决策是正确的。或者,在与团队讨论绩效选择技术的会议上分享一些东西。。。(那些总是很有趣……)
#elm {margin-right: value;}
document.getElementById('elm').style.marginRight = value;