Javascript 浏览器编程是否标准化?所有主要浏览器是否都符合标准?
这更像是一个好奇的问题,看看事情是如何发展的,因为我目前没有做任何类型的web编程,但我记得编写Javascript 浏览器编程是否标准化?所有主要浏览器是否都符合标准?,javascript,standards,Javascript,Standards,这更像是一个好奇的问题,看看事情是如何发展的,因为我目前没有做任何类型的web编程,但我记得编写JavaScript时是这样的(伪代码): 尘埃落定了吗?环顾四周,似乎有一个标准的ECMA-262。是这样吗?如果是这样的话,所有主要的现代浏览器都实现了标准化的JavaScript吗?请参见 Javascript有一些标准(称为ECMAScript),浏览器或多或少地实现了它。语言本身只是你需要的一小部分,但是,使一些有用的东西。DOM API不太标准,因此许多开发人员使用jQuery或其他框架来
JavaScript
时是这样的(伪代码):
尘埃落定了吗?环顾四周,似乎有一个标准的ECMA-262。是这样吗?如果是这样的话,所有主要的现代浏览器都实现了标准化的JavaScript吗?请参见
Javascript有一些标准(称为ECMAScript),浏览器或多或少地实现了它。语言本身只是你需要的一小部分,但是,使一些有用的东西。DOM API不太标准,因此许多开发人员使用jQuery或其他框架来处理不一致性。这有两个主要方面:
addEventListener
与attachEvent
)Array#indexOf
)。然后,虽然大多数浏览器供应商很快就让浏览器完全符合要求,但微软拖了几年,所以你看到并且仍然看到了很多用于Array#forEach
,Object.create
,等等的垫片/填充物,因为人们不得不支持IE8,而IE8是在ECMAScript5之前推出的,几年后IE9才问世
不幸的是,由于IE8是Windows XP的最新版本,尽管它已经过时,但它仍然在大量使用
下一个版本(又称ES6)即将发布(一些人乐观地称之为“ECMAScript 2015”),当然,因为ES6中有一些非常重要的功能(这很容易是JavaScript有过的最大更新),这些功能将在供应商的浏览器版本中一点一滴地出现。同时,许多虽然不是所有的特性今天都可以通过transfilation使用,您可以在ES6中编写代码,然后将其传输到ES5。如果你搜索“ES6 transpiler”,你会发现几个
是否为JavaScript提供了浏览器功能?
环顾四周,似乎有一个标准的ECMA-262。是这样吗
这对于JavaScript(如上所述)是正确的,但对于其他方面来说,它远不止是HTML。它也是各种各样的
情况比五年前好多了,主要原因有两个:
- 是。。所有浏览器都使用标准化的javascript。。但是有些功能是一些浏览器支持的,而不是少数浏览器支持的
示例:实现AJAX的方式也取决于您使用的浏览器
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
类似地,还有其他类似的函数
事件:chrome和firefox支持输入,但IE不支持输入
因此,在使用特定的javascript函数之前,我们必须考虑浏览器javascript的兼容性
更多信息:现在情况并没有那么糟,更可能是“对不起你有Safari”@blex
主流现代浏览器
JS本身,大多数情况下,当然。与DOM的交互不太多,但是有多填充。你是对的,我考虑的更多的是库?/api,而不是语言本身
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}