osc*_*tin 2 javascript cross-browser
我不认为我需要提供示例,因为每个Web开发人员都知道您需要测试您的Javascript以确保它在不同浏览器之间兼容.我没有得到的是为什么.不是Javascript Javascript?它就像.NET框架在一台计算机上的行为不同于在另一台计算机上行为.任何人都可以对此有所了解,可能有一些源链接与他们的答案一致吗?
简短的回答是每个浏览器都为JS编写自己的解释器
答案很长
要理解为什么编程语言的功能不同,您必须了解执行时编程语言会发生什么.首先,有两种语言被解释和编译.编译语言在执行之前从人们可读的"代码"转换为机器代码,并作为二进制文件分发.
解释语言是即时编译的,JS是其中一种语言.即时编译语言意味着什么?好吧,计算机除了1和0之外什么都不懂,因此所有更高级别的语言必须分解为指令然后分解为二进制.在动态编译某些内容时,它会编译一行,然后运行它,然后编译下一行.(当然有复杂但实际上是它的缺点)
因为JS直到最近才真正拥有一个独立的解释器,并且浏览器是JS的主要目的,每个公司都必须编写自己的解释器才能进入他们的浏览器.微软,Mozilla,Netscape ......每个人都需要考虑如何处理某些事情然后执行它们.
因为这两件事情首先发生,如果两个人正在努力,你永远不会得到同样的东西.想想当你参加Comp Sci课程时,每个人都必须制作一个计算器应用程序,但每个人都采用不同的方法.这种情况一直伴随着js发生,并导致一些浏览器在其他浏览器飞行时爬行.
第二个问题是,公司会以自己的方式设置,他们有太多的时间和精力投入到他们的翻译中,并且不想在修改工作时重新开始并且更便宜.这意味着过去出现的差异,当JS使用较少而且对于Web开发几乎没有任何关键时,这仍然只是因为当它围绕着它自己的解释器时,很难用webkit推出一个全新的IE版本.多年.