javascript是干什么的

JavaScript05

javascript是干什么的,第1张

JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

javascript是一种解释类型的语言,跟c++、c语言这些不一样(先编译后执行),它是在程序运行过程中每行都要进行解释。javascript不仅是一种基于对象的脚本语言,它既可以创建对象,也可以直接使用已有的对象。

javascript是事件驱动性的脚本语言,比如用户在访问网页时,鼠标在点击,移动等操作。javascript是可以直接对这些时间做出相应,并不需要通过web服务器来对用户的行为做出相应。

javascript特点:

1、简单性

javascript是弱类型的变量类型,对于数据类型并没有严格要求,她的设计简单紧凑。

2、跨平台性

javascript是不需要依靠操作系统,只要浏览器支持,它编译后就可以直接带到任何支持浏览器脚本语言上就可以直接使用了,而javascript几乎已经获得所有浏览器的支持。

javascript是事件驱动性的脚本语言,比如用户在访问网页时,鼠标在点击,移动等操作。javascript是可以直接对这些时间做出相应,并不需要通过web服务器来对用户的行为做出相应。

函数式编程:

知道如何使用纯函数进行声明式编程是一个人应该具备的另一种关键技能,因为它可以完全改变你的编码方式,变得更好。使用函数式编程,您可以纯粹通过函数编写代码,避免共享状态、数据突变和副作用。由于函数式编程的声明性质,生成的代码更简洁、可预测并且更易于测试和更改。此外,由于它简洁,可以更快地执行代码,从而缩短加载时间。学习函数式编程可能既困难又耗时,但它所带来的优势使其值得花时间。

编写跨浏览器代码:

一般来说,互联网用户不会坚持只使用一个网络浏览器;有些人可能更喜欢使用Internet Explorer,而其他人可能更喜欢使用 Google Chrome。在这种情况下,您无法编写在单个 Web 浏览器上运行的代码,因为这会严重限制您的网站受众并阻碍您网站的增长潜力

为了确保您的网站可以在流行的浏览器、移动设备和任何其他网络浏览设备上使用,编写与多个网络浏览器兼容的 JavaScript 代码至关重要。

高效的内存管理:

编写内存高效的 JavaScript 代码的能力是一项随着时间的推移而发展起来的技能,但您仍然应该知道这一技能。任何 Web 应用程序或网站都可能泄露内存,如果代码不适合内存优化,则会导致速度变慢。内存泄漏有时甚至会导致大量性能问题,因为它们最终会消耗大量宝贵的系统资源。尽管 JavaScript 有自己的自动内

JavaScript 与Java是两个公司开发的不同的两个产品。Java 是原Sun Microsystems公司推出的面向对象的程序设计语言,特别适合于互联网应用程序开发而JavaScript是Netscape公司的产品,为了扩展Netscape浏览器的功能而开发的一种可以嵌入Web页面中运行的基于对象和事件驱动的解释性语言。JavaScript的前身是LiveScript而Java的前身是Oak语言。

下面对两种语言间的异同作如下比较:

基于对象和面向对象:Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object-Based)和事件驱动(Event-Driven)的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。

解释和编译:Java的源代码在执行之前,必须经过编译。JavaScript是一种解释性编程语言,其源代码不需经过编译,由浏览器解释执行。(目前的浏览器几乎都使用了JIT(即时编译)技术来提升JavaScript的运行效率)

强类型变量和类型弱变量:Java采用强类型变量检查,即所有变量在编译之前必须作声明JavaScript中变量是弱类型的,甚至在使用变量前可以不作声明,JavaScript的解释器在运行时检查推断其数据类型。

代码格式不一样。

补充:上面列出的四点是网上流传的所谓的标准答案。其实Java和JavaScript最重要的区别是一个是静态语言,一个是动态语言。目前的编程语言的发展趋势是函数式语言和动态语言。在Java中类(class)是一等公民,而JavaScript中函数(function)是一等公民,因此JavaScript支持函数式编程,可以使用Lambda函数和闭包(closure),当然Java 8也开始支持函数式编程,提供了对Lambda表达式以及函数式接口的支持。对于这类问题,在面试的时候最好还是用自己的语言回答会更加靠谱,不要背网上所谓的标准答案。