我可以轻松找到Flash或Silverlight的功能,但很难找到JavaScript可以做的事情。
是否有人可以向我提供主要JavaScript功能列表?
(类似于:使用文件系统,Web cam支持,JSON解析,套接字支持等)
更新
如果你说它取决于平台,那么这样做:平台 - 功能列表,平台 - 功能列表......
问题是没有人想出所有Javascript平台的完整功能列表。
更新
Javascript - 是一种语言..但在我看来,它也是一种客户端技术(它是作为浏览器的插件开发的,与Flash一样,与Silverlight相同)
Silverlight可以在浏览器中工作(我可以找到该'模式'的功能列表)和OOB(在浏览器之外,我也可以找到该'模式'的功能列表),但我找不到JavaScript的功能列表...我是唯一对此感兴趣的人吗? :)
答案 0 :(得分:9)
我认为问题没有得到妥善解决。 Javascript可以做任何事情,因为它是Turing完整的(特别是任何图灵完整语言都可以进行JSON解析),但是对外部资源(例如套接字或网络摄像头)的访问仅限于在特定环境中可用的API。 / p>
所以它取决于环境:对于浏览器,node.js或rhino,答案会有所不同。如果你的意思是浏览器中的Javascript:不多。基本的可用API是DOM和BOM,尽管HTML5会有一些用于存储和套接字的新功能。
编辑我已阅读您的更新,我认为要求提供每个现有环境的功能是不合理的。尽管如此,在我看来,你最感兴趣的是客户端Javascript的功能 - 即在浏览器中。直到最近,还有一个与以下两个API相关联:
div
或其他元素,更改元素样式等。出于明显的安全原因,有(并且仍然没有)对本地文档进行操作的方法。随着HTML5的出现,有许多新的API,其中一些仍在大力开发中。通常,您不能依赖旧版浏览器上的API。
This presentation总结了所有客户支持HTML5后可用的新商品。
除了DOM和BOM API,您还可以使用 Web API 。请注意,XMLHttpRequest是一个Web API。您可以在此链接中查看完整列表:https://developer.mozilla.org/en-US/docs/Web/API。
答案 1 :(得分:6)
Flash和Silverlight都是平台,因此有一个已知的平台支持的列表。
JavaScript是一种语言而非平台。在“使用文件系统”或“网络摄像头支持”方面,它所做和不支持的事情列表实际上取决于运行该语言的平台。
大多数人在大多数情况下都会在网络浏览器中运行JavaScript,所以它支持的列表更多地是关于网络浏览器允许您使用JavaScript访问的内容。
通常,这意味着无法访问不受限制的文件(出于安全原因)。可以访问网络摄像头,具体取决于浏览器和版本。
但总的来说,我认为你可能需要重新思考你提出的问题,因为你可能真的很有意思 - “在网络浏览器的环境中,我可以做什么,不能做什么”。如果做不到这一点,你可能会说,“JavaScript支持哪些语言功能” - 在这种情况下,您应该能够找到许多JavaScript作为语言的描述并与其他语言进行比较。
答案 2 :(得分:5)
Javascript最初是编程语言,它与HTML文档上的用户界面进行交互。
DOM / HTML上的Javascript可以:
经过多年的发展和扩展,语言现在依赖于平台的能力。
例如,在Adobe AIR上,Javascript的功能可以与普通的C#应用程序一样广泛(意思是说您可以编写Javascript来读/写文件,网络摄像头,JSON解析,套接字等)。
基本上我的观点是,Javascript最终只是一种语言。您可以在多个平台上运行相同的语言,并且您作为开发人员使用Javascript访问平台预定义的对象。
答案 3 :(得分:1)
Flash和Silverlight是第三方网络浏览器插件,其中javascript被内置到大多数浏览器中(除了一些基于文本/不可用的浏览器)。 Javascript是一种客户端脚本语言,这意味着所有处理都在访问者计算机上完成。
我可以告诉你,你无法使用文件系统,即。出于明显的安全原因,在服务器或客户端计算机上创建/编辑/删除文件。您可以解析JSON,因为它是javascript对象表示法。您可以进行表单验证,但始终最好进行服务器端验证以确保数据质量。在提交数据之前进行验证的原因是为了保存服务器的运行之旅,并为用户提供与普通桌面应用程序一样的安装反馈。您可以使用javascript创建图表,并且总是加载支持和教程。
你有什么具体的想法?
答案 4 :(得分:0)
Javascript可以做的一些事情:
它也是面向对象的编程语言,因此它支持诸如类,继承,变量等概念。
Javascript(在浏览器环境中)无法做到的一些事情: