分享Java和JavaScript的区别与联系

本文介绍了Java和JavaScript这两种编程语言的历史、用途和特点,强调了JavaScript从简单脚本到强大工具的发展过程,以及其在Web开发中的重要性,包括TypeScript的扩展和流行的JavaScript框架如React、Vue和Angular。
摘要由CSDN通过智能技术生成

当你不懂编程语言时,学习一个新的框架或开发环境会变得更加困难。但是借助互联网资源可以建立一个可以继续成长的基础。帮助您将能够学习教程、快速入门、书籍和其他资源,并继续自己成长。

什么是Java技术?我为什么需要它?

Java是Sun Microsystems于1995年首次发布的一种编程语言和计算平台。它从一个卑微的开端发展为今天数字世界的很大一部分,通过提供可靠的平台来构建许多服务和应用程序。为未来设计的新的创新产品和数字服务也将继续依赖Java。

什么是JavaScript技术?我们为什么需要它?

JavaScript 编程语言允许你在 Web 页面上实现复杂的功能。如果你看到一个网页不仅仅显示静态的信息,而是显示依时间更新的内容,或者交互式地图,或者 2D/3D 动画图像,或者滚动的视频播放器,等等——你基本可以确定,这需要 JavaScript 的参与。

类Java语法

尽管保持语法接近Java并不是JavaScript背后的最初想法,但营销力量改变了这一点。回顾过去,尽管不同的语法可能对某些功能更方便,但不可否认的是,熟悉的语法帮助JavaScript轻松取得了进展。

通俗的讲JavaScript和Java是两种不同的编程语言:JavaScript主要用于客户端,Java用于服务端。

Java 举例:

import java.util.Date;
public class DateDemo {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        try {
            // 初始化 Date 对象
            Date currentDate = new Date();
            // 使用 toString() 函数显示日期时间
            System.out.println(currentDate.toString());
        } catch(Exception e) {
            System.out.println("Unexpected exception: " + e);
        }
    }
}

JavaScript 举例:

console.log('Hello world');
try {
    const currentDate = new Date();
    console.log(currentDate);
} catch(e) {
    console.log('Unexpected exception' + e);
}

回顾历史

1991年8月2日,一位来自欧洲核子研究组织的工程师 Time Berners Lee 在邮件组里群发说他做了一个项目,叫万维网(World Wide Web),这个项目里大致做了这样几个东西: 一个用于网络传输的协议 (HTTP)、一个超文本标记语言(HTML)、一个命令行的浏览器、一个在 NeXT 电脑上 运行的HTML编辑器、一个服务端可以生成文件的软件。目的是给物理学家们交流新闻、信息、文档,项目比较初级,希望感兴趣的人联系他一起交流。从互联网诞生之日起,Web 的初心就相当纯粹:“希望提供人人可以访问的、用来交流分享信息的场所”。

很快,这个项目就从高能物理学圈这个使用范围逐渐扩大到其他使用计算机的用户上,1992年,世界上有了26个网站,这个年底,在美国国家超级电脑应用中心工作的两名小伙 Andreessen 和 Bina,在同行产品的启发下搞了另外一个新的浏览器取名 Mosaic,相比于命令行的浏览器,Mosaic 具有更美观的图形化界面、更加好用一些。一下让本来还不算火爆的互联网火爆了起来,到1995年,世界上存在的网站数量已经超过了10000+。

在这一发不可收拾的浪潮中,1994年 Andreessen 和 Bina 和硅谷图形公司的 Jim Clark,成立了一家新的叫做 Netscape(网景) 的公司,希望做出更好的浏览器替代 Mosaic,在 1994年10月,公司发行了一款新的浏览器 Netscape Navigator,这款浏览器很快就火了,逐步替代掉了 Mosaic。

网络的兴起使JavaScript占据了它从未想过的位置。让我们来看看JavaScript在其短暂的历史中是如何发展的,以及它的下一步发展方向。

这一切发生在1995年5月至12月的六个月内。网景通信公司在年轻的网络中有着强大的影响力。它的浏览器Netscape Communicator作为第一款流行的网络浏览器NCSA Mosaic的竞争对手,越来越受欢迎。网景是由90年代初参与Mosaic开发的同一批人创建的,现在,有了资金和独立性,他们有了必要的自由来寻求进一步的网络扩展方式。这正是JavaScript诞生的原因。

当时商业环境复杂,1995年,Sun 公司开始为即将发布的 Java 做各种营销,找到了网景,希望做一些合作。网景表达了合作意向,希望在 Netscape Navigator 2 中集成 Java,这个合作意向让 Brendan Eich 的工作彻底难办起来,不仅技术选型更困难了,距离发布会的时间也相当的短。短时间实现 Java 和 HTML 的整合是不可能的,且 Java 还没正式发布, 第一版也不好用,包括 老板 Andreessen 本人对 Java 也有一定的怀疑。

Brendan Eich 被指派开发一种新的脚本语言,这种语言将补充 Java 的功能,使Web 浏览器能够实现动态内容和交互性。Eich 在短短 10 天内完成了这种语言的首个版本。这种快速开发是为了满足网景浏览器 2.0 的紧迫发布日程。

这种紧迫开发日程的背后原因是网景与微软之间的浏览器战争。网景希望通过快速增强 Web 的交互性来保持对 Internet Explorer 的优势。这种语言最初被称为 Mocha,后来更名为 LiveScript,最终在 1995 年 9 月随网景浏览器 2.0 B3 一起发布。到了同年 12 月,它正式更名为 JavaScript。这是网景出于营销考虑,利用了 Java 的流行度,尽管这两种语言在设计和目的上有很大的不同。

这次运营活动,让开发很为难,最后 Andreessen 拍板临时实现一门语言,最后这门语言最后应该会叫做 “JavaScript”。

网景通信公司创始人、前Mosaic团队成员Marc Andreessen认为,网络需要一种方式来变得更加动态。动画、互动和其他形式的小型自动化应该成为未来网络的一部分。因此,web需要一种能够与DOM交互的小型脚本语言(这并不像现在这样一成不变)。但是,这在当时是一个重要的战略呼吁,这种脚本语言不应该面向大人物开发人员和在软件工程方面有经验的人。Java也在崛起,Java小程序很快就会成为现实。因此,网络脚本语言需要迎合不同类型的受众:设计师。事实上,网络是静态的。HTML对于非开发人员来说还足够年轻和简单。因此,任何成为浏览器一部分以使网络更具动态性的东西都应该是非程序员可以访问的。

Brendan Eich 本来是想集中精力搞一个运行在浏览器的 Scheme 语言,但是这次时间显然非常仓促,公司还要求在外表上尽量接近 Java 并且学习使用门槛要低。他花了10天完成了语言的原型,后面稍微做了一些补充性的改动,在1995年 9月正式发版。在这一段时间里,Eich 除了要实现老板提到的这些需求,也掺杂了大量的过往经验。JS 的背后有很多设计参考了 C、Self、HyperTalk、Awk、Logo、Lisp这些语言。当时有人提出需要实现和 Java 一样的面向对象功能,但是时间显然不够,Eich 参考了 Self 实现了原型模式。

就这样,经历了倒排、来自老板的需求、面向发布会编程,JS 开启了它的历史使命。

多年来,JavaScript 已经从一个简单的脚本语言成长为一种强大的、成熟的编程语言,能够创建复杂的 Web 应用程序、服务器端应用程序(使用Node.js)、移动应用程序,甚至是游戏。

随着 JavaScript 的普及增加,对其标准化的需求也随之增长。这导致了 ECMAScript 标准的创建。标准化使 JavaScript 在不同的Web浏览器中更加一致和可靠。

此外,JavaScript 框架和类库的出现,如 jQuery、Angular、React 和 Vue,极大地简化了复杂Web应用程序的开发,使 JavaScript 成为 Web 开发人员不可或缺的工具。

 JavaScript 最重要的几个特征

01 解释型语言

JavaScript 代码由浏览器或 JavaScript 引擎执行,而不是事先编译成机器语言。这使得它在不同平台上具有很高的可移植性。V8 等现代引擎利用即时 (JIT) 技术将代码编译成可直接执行的机器代码。

02 函数是一等公民

在 JavaScript 中,函数被视为一等公民,这意味着它们可以存储在变量中,可以作为参数传递给其他函数,也可以从函数中返回。

03 动态类型

JavaScript 是一种松散类型或动态语言,这意味着我们不必提前声明变量的类型,而且类型可以在运行时改变。

04 客户端执行

JavaScript 支持异步编程,允许在后台运行读取文件、HTTP 请求或查询数据库等操作,并在完成后触发回调或承诺。这在网络开发中对提高性能和用户体验特别有用

05 基于原型的 OOP

与基于类的面向对象语言不同,JavaScript 使用原型进行继承。这意味着对象可以从其他对象继承属性和方法。

06 自动垃圾回收

JavaScript 中的垃圾回收是一种自动内存管理。垃圾回收的主要目的是回收程序不再使用的对象所占用的内存,这有助于防止内存泄漏并优化应用程序的性能。

07 与其他语言相比

JavaScript 与 Python 或 Java 等编程语言相比比较特殊,因为它是网络开发的主要语言。

Python 以提供良好的代码可读性和多功能性著称,Java 以其结构性和健壮性著称,而 JavaScript 是一种解释型语言,无需编译即可直接在浏览器上运行,强调灵活性和动态性。

08 与 TypeScript 的关系

TypeScript 是 JavaScript 的超集,这意味着它通过向 JavaScript 语言添加功能(最显著的是类型注解)来扩展 JavaScript。这种关系允许任何有效的 JavaScript 代码也被视为有效的 TypeScript 代码。

09 流行的 JavaScript 框架

React 以其灵活性和大量社区驱动的插件而闻名,而 Vue 则简洁直观,具有高度集成和响应性功能。另一方面,Angular 为企业级 JS 开发提供了一套严格的开发规范。

参见:

https://www.java.com/en/download/help/index.html

Java Downloads - Tools and Resources | Oracle 中国

A Brief History of JavaScript - DZone

JavaScript 指南 - JavaScript | MDN

Beginner's Series to: JavaScript | Microsoft Learn

Douglas Crockford's JavaScript

10 天 996 写出的语言 - JavaScript (qq.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

:MNongSciFans

抛铜币以舒赞同,解兜囊以现支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值