【Java 进阶篇】JavaScript 介绍及其发展史

在这里插入图片描述

JavaScript是一门广泛应用于Web开发的编程语言。它是一种高级的、解释性的脚本语言,主要用于改善用户与Web页面的互动体验。本篇博客将为你详细介绍JavaScript的基础知识、历史背景和它在Web开发中的重要作用。我们还将讨论JavaScript的发展史,从它的起源一直到现在的现代JavaScript。

什么是 JavaScript

JavaScript,通常简称JS,是一种用于构建交互式网页的脚本语言。它最初是由网景公司(Netscape)开发,因此在刚开始的时候被称为"LiveScript"。后来,为了搭上当时非常流行的Java的热度,更名为"JavaScript"。但需要注意的是,JavaScript与Java没有直接关系,它们是两种完全不同的编程语言。

JavaScript的主要用途包括:

  • 网页互动:JavaScript可以让你的网页更具互动性。你可以创建弹出窗口、表单验证、图像滑动等各种效果,以增强用户体验。

  • 动态内容:你可以使用JavaScript来动态更改网页上的内容,而不必重新加载整个页面。这对于创建单页应用程序(SPA)非常有用。

  • 数据请求:JavaScript可以与服务器进行通信,从服务器获取数据并将其呈现在网页上。这通常使用AJAX(Asynchronous JavaScript and XML)来实现。

  • 浏览器控制:你可以使用JavaScript来控制浏览器的各个方面,如添加和删除HTML元素,更改样式和处理浏览器事件。

JavaScript 的发展史

为了更好地理解JavaScript,让我们回顾一下它的发展史。JavaScript的历史可以大致分为以下几个阶段:

1. 起源阶段

  • 1995年: JavaScript的历史始于Netscape公司的布兰登·艾克(Brendan Eich)开发的原型。它最初被称为"LiveScript",后来更名为JavaScript。

  • 1996年: 微软推出了IE 3.0,它包括了一个名为JScript的JavaScript版本。这引发了浏览器战争,导致了各种JavaScript实现的不一致性。

  • 1997年: 为了推动JavaScript标准化,Netscape提交了JavaScript语言规范给ECMA International(一个标准制定组织),这就是为什么我们经常听到"ECMAScript"这个名词。

2. 增强和扩展

  • ES3(ECMAScript 3): 1999年,ECMAScript 3发布。它是JavaScript语言的重要版本,为其提供了一些新功能,如正则表达式和更多的控制语句。

  • DOM(Document Object Model): 1998年,W3C(World Wide Web Consortium)发布了DOM标准,它允许JavaScript与HTML文档进行交互。这为动态网页开发打开了大门。

  • ES5: 2009年,ECMAScript 5发布。它引入了一些重要的新功能,如"strict mode"(严格模式)和JSON支持。

3. 现代 JavaScript

  • ES6(ECMAScript 2015): 2015年,ECMAScript 6发布,也被称为ES2015。这是一个重要的版本,引入了许多新的语言特性,如箭头函数、类、模块、Promise等。ES6使JavaScript更强大、更易读、更易维护。

  • ES7(ECMAScript 2016): 2016年,ECMAScript 7发布,引入了Array.prototype.includes方法,该方法用于检查数组是否包含某个特定元素。

  • ES8(ECMAScript 2017): 2017年,ECMAScript 8发布,引入了async/await语法糖,使异步编程更加容易理解和维护。

  • ES9(ECMAScript 2018): 2018年,ECMAScript 9发布,引入了诸如spreadrest操作符、Promise.finally等新特性,以及正则表达式相关的改进。

  • ES10(ECMAScript 2019): 2019年,ECMAScript 10发布,引入了Array.prototype.flatArray.prototype.flatMap等新方法,以及Object.fromEntries方法。

  • ES11(ECMAScript 2020): 2020年,ECMAScript 11发布,引入了nullish coalescingoptional chaining等操作符,以处理变量未定义或为空的情况。

  • ES12(ECMAScript 2021): 2021年,ECMAScript 12发布,引入了String.prototype.replaceAllPromise.anyLogical Assignment Operators等新特性,以及更多的语法改进。

4. JavaScript 的应用

JavaScript已经发展成为一种跨平台的语言,不仅用于前端开发,还用于后端开发。以下是JavaScript在不同领域的应用:

  • 前端开发: JavaScript是构建交互式Web页面的关键语言,它可以与HTML和CSS结合使用,创建动态网页。

  • 后端开发: Node.js是一种JavaScript运行环境,使JavaScript可以用于服务器端开发。它已成为创建高性能Web应用的流行选择。

  • 移动开发: 使用JavaScript框架(如React Native、Ionic和NativeScript),开发人员可以构建跨平台移动应用程序,而不必编写多个不同平台的代码。

  • 游戏开发: 有许多JavaScript游戏引擎,如Phaser和Babylon.js,可以用于创建2D和3D游戏。

  • 桌面应用程序: 使用Electron,你可以使用JavaScript、HTML和CSS构建跨平台的桌面应用程序。

JavaScript 示例

下面是一个简单的JavaScript示例,演示如何在HTML中使用JavaScript来创建一个点击按钮:

<!DOCTYPE html>
<html>
<head><title>JavaScript示例</title>
</head>
<body><h1>欢迎来到JavaScript示例</h1><p>点击下面的按钮查看提示信息:</p><button id="myButton">点击我</button><p id="message"></p><script>// 获取按钮元素var button = document.getElementById("myButton");// 为按钮添加点击事件监听器button.addEventListener("click", function() {// 获取消息元素var message = document.getElementById("message");// 更改消息文本message.textContent = "你点击了按钮!";});</script>
</body>
</html>

在这个示例中,我们使用JavaScript获取HTML元素,添加事件监听器,并在按钮被点击时更改页面上的文本。

结语

JavaScript是Web开发的关键技术之一,它经历了多个版本和重大改进,使开发者能够构建更强大、更动态的Web应用程序。它不仅限于前端开发,还在后端、移动开发、游戏开发等领域有着广泛的应用。如果你想深入学习JavaScript,不仅可以从基础语法开始,还可以探索其各种框架和库,如React、Angular、Vue等,以提高你的Web开发技能。祝你学习愉快,掌握JavaScript的奇妙之处!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/156405.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 进阶篇】JavaScript二元运算符详解

JavaScript是一门多用途的编程语言&#xff0c;它支持各种运算符&#xff0c;包括二元运算符。二元运算符用于执行两个操作数之间的操作&#xff0c;这两个操作数通常是变量、值或表达式。在本篇博客中&#xff0c;我们将详细探讨JavaScript的二元运算符&#xff0c;包括它们的…

设计模式-状态模式

介绍 一个对象有状态变化每次状态变化都会触发一个逻辑不能总是用if else来控制 示例 交通信号灯不同颜色的变化 UML类图 传统UML类图 简化后的UML类图 代码演示 // 状态&#xff08;红灯、绿灯、黄灯&#xff09; class State {constructor(color) {this.color col…

A股风格因子看板 (2023.10 第04期)

该因子看板跟踪A股风格因子&#xff0c;该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子&#xff0c;用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第04期&#xff0c;指数组合数据截止日2023-09-30&#xff0c;要点如下 近1年A股风格因子检验统…

一站式解决方案:Qt 跨平台开发灵活可靠

一站式解决方案&#xff1a;Qt 跨平台开发灵活可靠 Qt 是一种跨平台开发工具&#xff0c;为开发者提供了一站式解决方案。无论您的项目目标是 Windows、Linux、macOS、嵌入式系统还是移动平台&#xff0c;Qt 都能胜任。这种跨平台的特性不仅节省开支&#xff0c;还推动了战略的…

CTF Misc(3)流量分析基础以及原理

前言 流量分析在ctf比赛中也是常见的题目&#xff0c;参赛者通常会收到一个网络数据包的数据集&#xff0c;这些数据包记录了网络通信的内容和细节。参赛者的任务是通过分析这些数据包&#xff0c;识别出有用的信息&#xff0c;例如登录凭据、加密算法、漏洞利用等等 工具安装…

【SQL】MySQL中的索引,索引优化

索引是存储引擎用来快速查询记录的一种数据结构&#xff0c;按实现方式主要分为Hash索引和B树索引。 按功能划分&#xff0c;主要有以下几类 单列索引指的是对某一列单独建立索引&#xff0c;一张表中可以有多个单列索引 1. 单列索引 - 普通索引 创建索引&#xff08;关键字i…

基于SpringBoot的城镇保障性住房管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 房屋类型管理 房源信息管理 房源申请管理 住房分配 房源申请 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上…

Exposure Normalization and Compensation for Multiple-Exposure Correction 论文阅读笔记

这是CVPR2022的一篇曝光校正的文章&#xff0c;是中科大的。一作作者按同样的思路&#xff08;现有方法加一个自己设计的即插即用模块以提高性能的思路&#xff09;在CVPR2023也发了一篇文章&#xff0c;名字是Learning Sample Relationship for Exposure Correction。 文章的…

新闻软文稿件媒体发布怎么做?纯干货

新闻软文稿件需要投放在正确的媒体上&#xff0c;才能获得更好的宣传推广效果&#xff0c;新闻软文稿件媒体发布怎么做&#xff1f;今天伯乐网络传媒就来给大家讲解一下&#xff0c;纯干货&#xff0c;建议收藏起来慢慢看。 一、媒体选择与分析 1. 确定目标媒体 在进行新闻软…

【USRP】NI PCIe-8371

什么是 NI PCIe-8371 PXI远程控制设备。 x4 Gen1 PCI Express主机&#xff0c;832 MB/s&#xff0c;铜缆MXI-Express设备&#xff0c;用于PXI远程控制—PCIe‑8371是一款MXI‑Express远程控制器&#xff0c;用于控制通过有线PCI连接到计算机PCI Express插槽的设备或系统。 当…

XLSX.utils.sheet_to_json()解析excel,给空的单元格赋值为空字符串

前言 今天用到XLSX来解析excel文件&#xff0c;调用XLSX.utils.sheet_to_json(worksheet)&#xff0c;发现如果单元格为空的话&#xff0c;解析出来的结果&#xff0c;就会缺少相应的key&#xff08;如图所示&#xff09;。但是我想要单元格为空的话&#xff0c;值就默认给空字…

车载通信架构 —— DDS协议介绍

车载通信架构 —— DDS协议介绍 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和…

扒一扒集成运放uA741的内部电路

uA741是一款常见的集成运放芯片,这个是uA741的内部电路。 Q1与Q2组成的差动对是整个741运算放大器的输入端,这两个三极管是射极跟随器的连接方式,特点是输入电阻大,输出电阻小。 Q1和Q2的输出接至共基极组态的PNP晶体管Q3和Q4

JS VUE 用 canvas 给图片加水印

最近写需求&#xff0c;遇到要给图片加水印的需求。 刚开始想的方案是给图片上覆盖一层水印照片&#xff0c;但是这样的话用户直接下载图片水印也会消失。 后来查资料发现用 canvas 就可以给图片加水印&#xff0c;下面是处理过程。 首先我们要确认图片的格式&#xff0c;我们通…

缓存的力量:提升API性能和可扩展性

缓存是将频繁访问的数据或资源存储在临时存储位置(例如内存或磁盘)的过程&#xff0c;以提高检索速度并减少重复处理的需要。 缓存的好处 提高性能&#xff1a;缓存消除了每次从原始源检索数据的需要&#xff0c;从而提高了响应时间并减少了延迟。减少服务器负载&#xff1a;通…

python安装geopy出现错误

python&#xff1a; 安装geopy出现错误 错误信息&#xff1a; 解决办法&#xff1a;再试一次 居然成功了&#xff0c;就是说&#xff0c;也不知道为什么

企架布道:中电金信应邀出席2023佛山敏捷之旅暨DevOps Meetup

近日&#xff0c;2023佛山敏捷之旅暨DevOps Meetup活动顺利举行&#xff0c;本次活动以助力大湾区金融和互联网企业敏捷DevOps实施和效能提升为主题&#xff0c;共设立 2个会场&#xff0c;16个话题分享&#xff0c;200余位金融、互联网企业相关从业人员齐聚一堂&#xff0c;共…

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的&#xff1b;数据管理是集中的 ②C/S结构 客户端负责数据表服务&#xff1b;服务器负责数据库服务&#xff1b;系统分前后端&#xff1b;ODBC、JDBC ③分布式数据库 物理上分布、逻…

【Python深度学习】目标检测和语义分割的区别

在计算机视觉领域&#xff0c;语义分割和目标检测是两个关键的任务&#xff0c;它们都是对图像和视频进行分析&#xff0c;但它们之间存在着明显的区别。本文将通过图像示例&#xff0c;详细阐述语义分割和目标检测之间的差异。 一、基本概念 1.1 语义分割&#xff08;Semantic…

【MySQL入门到精通-黑马程序员】MySQL基础篇-DCL

文章目录 前言一、DCL-介绍二、DCL-管理用户二、DCL-权限控制总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记&#xff0c;课程地址在这。如有侵权&#xff0c;立即删除。 一、DCL-介绍 DCL英文全称是Data Control Language&#xff08;数据控制语言&#x…