很多浏览器实现了JavaScript的一个公共子集,使得大部分代码在不同浏览器上都能很好的兼容,不兼容性的问题不是语言本身,而是浏览器所开放的底层的文档对象模型(DOM)不同。例如:一个JavaScript语言的对象可以是Date或者String;无论在safari还是navigator实现,它都还是Date或者String。在不同的浏览器各自对JavaScript的实现中,如何开放和操作这些DOM对象,这导致了浏览器之间的不兼容性。
另外,我们知道JavaScript可以修改元素的属性,而这些属性又可以通过css样式属性来定义。但因为浏览器对于css的实现可能有所不同,导致了一些跨浏览器不兼容的问题。
--摘录于JavaScript核心技术(Sbelley Powers著,O'REILLY)