JavaScript基础之JavaScript简介(什么是JavaScript?)

news2025/1/12 10:03:19

JavaScript简介

JavaScript,通常被缩写为JS,是一种轻量级跨平台单线程解释编译的编程语言。它也被称为网页脚本语言。它以网页开发而闻名,许多非浏览器环境也使用它。

JavaScript是一种弱类型语言。JavaScript可用于客户端开发以及服务器端开发。JavaScript既是命令式语言又是声明式语言。JavaScript包含一个标准对象库(例如Array、Date和Math),以及一组核心语言元素(例如运算符、控制结构和语句)。

JavaScript允许向网页添加交互性。例如,可将JavaScript与HTML和CSS结合使用来增强网页的功能,例如表单验证、创建交互式地图以及显示动画图表。

当加载网页时,即HTML和CSS运行之后,网络浏览器中的JavaScript引擎才会执行JavaScript代码。然后,JavaScript代码修改HTML和CSS以动态更新网页界面。

JavaScript引擎是Web浏览器的一个组件,负责解释和执行JavaScript代码。它包括一个用于分析代码的解析器、一个用于将其转换为机器代码的编译器以及一个用于运行编译后的代码的解释器。

JavaScript引擎包括Chrome中的V8、Firefox中的spiderMonkey和Safari中的JavaScriptCore。

最初,JavaScript引擎是作为解释器实现。然而,现代JavaScript引擎通常被实现为即时编译器,将JavaScript代码编译为字节码以提高性能。

JavaScrip的历史

  • JavaScript的诞生:
    • 1995年,由Netscape公司的工程师Brendan Eich与Sun公司联手开发了JavaScript。最初开始的名字是Mocha,在服务端上叫LiveWire,后改为LiveScript。
    • 1995年12月4日,网景把LiveScript改为JavaScript。
  • JavaScript的标准化:
    • 1996年,JavaScript的1.1版本发布。
    • 在1997年,由欧洲计算机制造商协会(Ecma)中的第39技术委员会(TC39)承担了“标准化一门通用、跨平台、厂商中立的脚本语言的语法和语义”的任务。TC39委员花费数月打造出ECMA-262,也就是ECMAScript作为新的脚本语言标准。
    • 随后在1998年,国际标准化组织(ISO)和国际电工委员会(IEC)也将采用ECMAScript作为标准。
  • ECMAScript的后续版本:随着JavaScript的普及,开发人员开始就语言的不足之处提出了一些批评。这导致了一些改进,包括ECMAScript 2.0、ECMAScript 3.0、ECMAScript 4.0等等。其中,ECMAScript 3.0成为JavaScript的主流版本,它在2000年发布,并一直延续至今。
  • JavaScript的复兴:2005年,Ajax技术的出现让JavaScript重新焕发生机。Ajax允许网页通过JavaScript异步加载数据,而不需要整个页面重新加载。这使得网页更加动态和交互性,也使得JavaScript在网页开发中得到了更广泛的应用。
  • ECMAScript 6.0(也称为ECMAScript 2015)及以后的版本:2015年,ECMAScript 6.0(也称为ECMAScript 2015)发布,它引入了许多新的特性和语法,包括箭头函数、类、模板字符串等等。此后,每年都会发布新的ECMAScript版本,以不断完善和改进JavaScript的功能。

JavaScript 的组成

完整的JavaScript:
在这里插入图片描述

  • ECMAScript:是指JavaScript 的语法标准。
  • DOM:文档对象模型,是提供与网页上的元素交互的 API。
  • BOM:浏览器对象模型,是提供用于与 Web浏览器交互的浏览器 API。

JavaScript 的特点

  • 可以使用任何文本编辑工具编写,然后使用浏览器就可以执行程序。
  • 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
  • 是一种解释型脚本语言:代码不进行预编译,从上往下逐行执行,不需要进行严格的变量声明。
  • 主要用来向 HTML 页面添加交互行为,例如表单验证、创建交互式地图以及显示动画图表
  • JavaScript 是一门弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程,被广泛用于Web 开发。
  • JavaScript是一门基于原型的动态解释性脚本语言
  • 可以处理日期和时间
  • 不需要编译器

JavaScript与ECMAScript的关系

  • ECMAScript是一种语言标准
  • JavaScript是对ECMAScrip的一种实现

JavaScript客户端与服务端

JavaScript可以在网络浏览器和服务器上运行。

  • 当JavaScript在网络浏览器中执行,作为客户端语言
  • 现在流行的JavaScript服务器端环境是Node.js。与客户端JavaScript不同,服务器端JavaScript在服务器上执行,并允许访问数据库、文件系统等

JavaScript的限制

  • 安全风险:JavaScript 可用于使用 AJAX 或通过操作加载数据的标签(例如 <img>、<object>、<script>)来获取数据。这些行为称为跨站点脚本攻击。他们将不属于网站一部分的 JS 注入访问者的浏览器中,从而获取详细信息。
  • 性能:JavaScript 无法提供与许多传统语言相同的性能水平,因为用 JavaScript 编写的复杂程序相对较慢。但由于 JavaScript 用于在浏览器中执行简单的任务,因此性能并不被认为是其使用的大限制。
  • 复杂性:要掌握脚本语言,程序员必须全面了解所有编程概念、核心语言对象以及客户端和服务器端对象,否则他们将很难使用 JavaScript 编写高级脚本。
  • 弱错误处理和类型检查设施:它是一种弱类型语言,因为不需要指定变量的数据类型。因此编译不会执行错误类型检查。

JavaScrip用途

  • 嵌入动态文本于HTML页面
  • 对浏览器事件作出响应
  • 读写HTML元素
  • 在数据被提交到服务器之前验证数据
  • 检测访客的浏览器信息

为什么JavaScript被称为轻量级编程语言

JavaScript 被认为是轻量级的,因为它的 CPU 使用率低,易于实现,并且具有简约的语法。例如,没有数据类型。这里一切都被视为对象。由于其语法类似于C++和Java,因此非常容易学习。
轻量级语言不会消耗太多 CPU 资源。它不会对您的 CPU 或 RAM 造成过度压力。此外,与其他编程语言相比,它的内置库或框架较少,这也是它轻量级的另一个原因。然而,这带来了一个缺点,即我们需要合并外部库和框架。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shell编程学习

shell编程学习 变量的高级用法变量替换字符串处理获取字符索引获取子串长度抽取字符串中的子串 案例测试 变量的高级用法 变量替换 ##变量替换&#xff08;贪婪&#xff0c;从前往后匹配&#xff0c;匹配到进行删除&#xff09; test1I love you,you love me echo $test1 han…

Java研学-spring框架(一)

一 概述 1 介绍 Spring框架是一个开源的Java EE应用程序框架&#xff0c;旨在简化Java企业级应用的开发难度和开发周期&#xff0c;主要通过控制反转&#xff08;IoC&#xff09;和面向切面编程&#xff08;AOP&#xff09;等技术实现。   容器&#xff08;Container&#x…

【CVE-2022-22733漏洞复现】

Apache ShardingSphere ElasticJob-UI漏洞 漏洞编号:CVE-2022-22733 文档说明 本文作者:SwBack 创作时间:2024/1/21 19:19:19 知乎:https://www.zhihu.com/people/back-88-87 CSDN:https://blog.csdn.net/qq_30817059 百度搜索: SwBack漏洞描述 Apache ShardingSphere Elast…

Python基础第二篇(Python基础语法)

文章目录 一、字面量二、注释三、变量四、数据类型五、数据类型转换六、标识符七、运算符八、字符串扩展内容&#xff08;1&#xff09;字符串定义&#xff08;2&#xff09;字符串拼接、&#xff08;3&#xff09;字符串格式化&#xff08;4&#xff09;字符串格式化的精度控制…

上位机图像处理和嵌入式模块部署(开篇)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉&#xff0c;以传统算法和光源控制为主&#xff0c;部分采用了深度学习技术…

MySQL的下载、安装、配置、登录,配置(图+文)(超级详细)

一、 软件的下载 1. 下载地址 官网&#xff1a; https://www.mysql.com 2. 打开官网&#xff0c;点击 DOWNLOADS 然后&#xff0c;点击 MySQL Community(GPL) Downloads 3. 点击 MySQL Community Server 4. 在 General Availability(GA) Releases 中选择适合的版本 …

【C语言基础篇】结构控制(下)转向语句break、continue、goto、return

文章目录 一、break语句 1. break在 while 循环中 2. break在 for 循环中 3. break在 do…while 循环中 4. break在 switch 语句中 5. break 总结 二、continue语句 1. continue在 while 循环中 2. continue在 for 循环中 3. continue在 do...while 循环中 4. con…

Kubernetes网络模型概述

Kubernetes网络模型设计的一个基础原则是&#xff1a;每个Pod都拥有一个独立的IP地址&#xff0c;并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管这些Pod是否运行在同一个Node中&#xff0c;都要求它们可以直接通过对方的IP进行访问。由于Kubernetes的网络模…

C++泛型编程-类模板的项目实战实现基础的Vector的编写

请设计一个数组模板类&#xff08; Vector &#xff09;&#xff0c;完成对 int 、 char 、 float 、 double 以 及任意的自定义类等类型元素进行管理。 需求 a. 实现构造函数 b. 实现拷贝构造函数 c. 实现 cout << 操作 d. 实现下标访问符 [] 的重载操作 …

中仕教育:应届生可以考军队文职吗?有什么要求?

军队文职&#xff0c;涵盖了各个领域&#xff0c;包括行政、管理、人力资源、后勤等工作岗位&#xff0c;作为国家公务员的一种类型&#xff0c;军队文职同样享有稳定的工作和待遇。 虽然军队文职对所有符合条件的人开放&#xff0c;但对于应届生来说&#xff0c;还需满足以下…

企业Oracle1 数据库管理

Oracle的安装 一、基础表的创建 1.1 切换到scott用户 用sys 账户 登录 解锁scott账户 alter user scott account unlock;conn scott/tiger;发现并不存在scott账户&#xff0c;自己创建一个&#xff1f; 查找资料后发现&#xff0c;scott用户的脚本需要自己执行一下 C:\ap…

Spring:StopWatch

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、输出总耗时 二、输出所有任务的耗时和占比 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、输出总耗时 public void stopWatc…

【web 编程技术】基于 B/S 架构的电商平台(java web)

基于 B/S 架构的电商平台&#xff08;java web&#xff09; 课程设计实验目的课程设计实验环境课程设计功能概述课程设计需求分析三层架构图功能列表系统用例图系统活动图-用户端需求分析 课程设计详细设计实现过程数据库BaseServlet 的实现商品显示模块-分页显示所有商品、查看…

【网站项目】基于SSM的274办公自动化管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

安全防御-基础认知

目录 安全风险能见度不足&#xff1a; 常见的网络安全术语 &#xff1a; 常见安全风险 网络的基本攻击模式&#xff1a; 病毒分类&#xff1a; 病毒的特征&#xff1a; 常见病毒&#xff1a; 信息安全的五要素&#xff1a; 信息安全的五要素案例 网络空间&#xff1a…

flutter项目怎么判断是不是web平台?Unsupported operation: Platform._operatingSystem

如果你使用Platform 这个工具来判断的时候&#xff0c;很有可能会报错&#xff1a; Exception caught by widgets library The following UnsupportedError was thrown building MyApp(dirty): Unsupported operation: Platform._operatingSystem The relevant error-causin…

关于索引的最常见的十道面试题

面试题一&#xff1a;索引底层如何实现的&#xff1f; MySQL索引的底层实现是取决于存储引擎的&#xff0c;但是是大部分存储引擎底层都是通过B树实现的&#xff0c;以默认的存储InnoDB为例&#xff0c;底层就是通过B树实现的&#xff0c;如下图所示&#xff1a; B树是一种自平…

为什么C++17要引入std::string_view?

目录 1.引言 2.原理分析 2.1.结构 2.2.构造函数 2.3.成员函数 2.4.std::string_view字面量 3.实例 3.1.std::string_view和std::string的运算符操作 3.2.查找函数使用 3.3.std::string_view和临时字符串 4.总结 1.引言 在C/C日常编程中&#xff0c;我们常进行数据的…

elastic search入门

参考1&#xff1a;Elastic Search 入门 - 知乎 参考2&#xff1a;Ubuntu上安装ElasticSearch_ubuntu elasticsearch-CSDN博客 1、ElasticSearch安装 1.1安装JDK&#xff0c;省略&#xff0c;之前已安装过 1.2创建ES用户 创建用户&#xff1a;sudo useradd esuser 设置密码&…

多线程编程1

一、线程的引入 上节&#xff0c;我们介绍了进程的概念&#xff0c;以及操作系统内核是如何管理进程的&#xff08;描述组织&#xff09;&#xff0c;PCB中的核心属性有哪些&#xff0c; 引入进程这个概念&#xff0c;最主要的目的&#xff0c;就是为了解决“并发编程”这样的…