JavaScript介绍,特点及组成(详解)

✨前言✨
  本章将介绍 JavaScript 的基本概念、编写方法,并带领大家编写第一个 avaScript 程序。

🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁
🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言


文章目录

  • JavaScript 简介
    • 一,JavaScript 语言简介
    • 二,JavaScript 的构成
      • 1,ECMAScript
      • 2,文档对象模型 DOM
      • 3,浏览器对象模型 BOM
    • 三,JavaScript 的特点
      • 1 . JavaScript语言的`特点`
      • 2.JavaScript可以做什么
      • 3.JavaScript的执行平台
      • 4.编写JavaScript程序

JavaScript 简介

  • JavaScript 是一种解释性的、基于对象的脚本语言 (an Interpreter, Objectbased Scripting anguage) 。它可以与 HTML、CSS 一起实现在一个 Web 客户端进行交互,从而可以开发客户端的应用程序。

  • 是赋予网页活力与交互性的主要手段之一。全世界每天都有无数网页在依靠JavaScript 完成各种关键任务随着 Web 2.0和Ajax 成为主流技术,JavaScript 已经被推到了 Web 开发的舞台中心,使用它来开发更大、更复杂的程序势在必行。随着 dojo、jQuery、Prototype、script.aculo.us、Ext 等成熟的JavaScript 框架不断发布,基于这些框架构建的优秀的 Web 应用也不断产生,因此,有理由相信 JavaScript 将会成为 Web 开发的一个重要方向。


一,JavaScript 语言简介

  HTML 网页在互动性方面能力较弱,例如下拉菜单,就是用户单击某一菜单项时,自动会出现该菜单项的所有子菜单,用纯 HTML 网页无法实现,又如验证HTML 表单 (Form)提交信息的有效性,用户名不能为空,密码不能少于 4位,邮政编码只能是数字之类,用纯 HTML 网页也无法实现。要实现这些功能,就需要用到 JavaScript。

  JavaScript 是一种脚本语言,比 HTML 要复杂。不过即使先前不懂编程,也不用担心,因为使用 JavaScript 编写的程序都是以源代码的形式出现的,也就是说在一个网页里看到一段比较好的 JavaScript 代码,恰好你也用得上,就可以直接将其复制,然后放到你的网页中去。正因为可以借鉴、参考优秀网页的代码,所以让 JavaScript 本身也变得非常受欢迎,从而被广泛应用。原来不懂编程的读者可多参考 JavaScript 示例代码,也能很快上手

  JavaScript 主要是基于客户端运行的,用户单击带有 JavaScript 的网页,网页里的 JavaScript 就传到浏览器,由浏览器对此作处理。前面提到的下拉菜单、验证表单有效性等大量互动性功能,都是在客户端完成的,不需要和 Web Server 发生任何数据交换,因此,不会增加 Web Server 的负担。

  几乎所有浏览器都支持 JavaScript,如 Internet Explorer (IE) ,Firefox,Netscape, Mozilla,Opera 等。


二,JavaScript 的构成

  虽然 JavaScript 和 ECMAScript 通常都被人们用来表达相同的含义,但 JavaScript 的含义却比 ECMA-262 中规定的要多得多。

  一个完整的 JavaScript 实现应该由下列三个不同的部分组成: 核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)

核心(ECMAScript): 是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展

文档对象模型(DOM):–document Object Module 提供与浏览器交互的方法和接口

浏览器对象模型(BOM):–Browser Object Module 提供访问和操作网页内容的方法和接口

在这里插入图片描述


1,ECMAScript

ECMA-262 定义的 ECMAScriptWeb 浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。 ECMA-262 定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。

我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript 实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。而这些扩展——如DOM,则利用 ECMAScript 的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。其他宿主环境包括 Node(一种服务端 JavaScript 平台)和 Adobe FlashECMA-262 标准没有参照 Web 浏览器,它规定了这门语言的下列组成部分:

语法   类型   语句   关键字   保留字   操作符   对象


2,文档对象模型 DOM

文档对象模型 (DOM, Document Object Model) 是针对 XML 但经过扩展用于 HTML 的应用程序编程接口 (API, Application Programming Interface)DOM 把整个页面映射为一个多层节点结构。 HTMLXML 页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。看下面这个HTML 页面:

<html><head><title>Sample Page</title></head><body><p>Hello World!</p></body>
</html>

在 DOM 中,这个页面可以通过下一小节二.3 的分层节点图表示。
通过 DOM 创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM 提供的 API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。


3,浏览器对象模型 BOM

Internet Explorer 3Netscape Navigator 3 有一个共同的特色,那就是支持可以访问和操作浏览器窗口的浏览器对象模型 (BOM, Browser Object Model) 。开发人员使用 BOM 可以控制浏览器显示的页面以外的部分。而 BOM 真正与众不同的地方(也是经常会导致问题的地方),还是它作为 JavaScript 实现的一部分但却没有相关的标准。这个问题在 HTML5 中得到了解决, HTML5 致力于把很多 BOM 功能写入正式规范。 HTML5 发布后,很多关于 BOM 的困惑烟消云散。从根本上讲, BOM 只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript 扩展算作 BOM 的一部分。下面就是一些这样的扩展:

  • 弹出新浏览器窗口的功能;
  • 移动、缩放和关闭浏览器窗口的功能;
  • 提供浏览器详细信息的 navigator 对象;
  • 提供浏览器所加载页面的详细信息的 location 对象;
  • 提供用户显示器分辨率详细信息的 screen 对象;
  • 对 cookies 的支持;
  • 像 XMLHttpRequest 和 IE 的 ActiveXObject 这样的自定义对象。

    由于没有 BOM 标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准,例如要有window 对象和 navigator 对象等,但每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。现在有了 HTML5, BOM 实现的细节有望朝着兼容性越来越高的方向发展。
    原文链接:https://blog.csdn.net/qq_52301431/article/details/124257837

三,JavaScript 的特点

1 . JavaScript语言的特点

JavaScript是一种脚本语言并且是一种基于对象和事件驱动的脚本语言。之所以要使用JavaScript不仅仅是因为JavaScript很安全,而且是因为它能与HTMLJavaApplet一起实现在一个web页面中连接多个对象,并与web客户交互作用,开发各种客户端的应用程序,满足人们的各种需求。JavaScript是通过嵌入或调入到标准的HTML语言中实现的,它的出现很好地填补了HTML的缺陷,是JavaHTML语言的桥梁。JavaScript以下几个基本特点:

(1) JavaScript是一种脚本编程语言

 这里要解释一下什么是脚本语言,也许很多读者之前已经接触过脚本语言,其实脚本语言是一种简单的程序,它是由一 些 ASCII 字符构成,可以直接用记事本等文本编辑器编写,事先也不用编译,只需要利用解释器就可以解释执行。

 前面已经介绍过JavaScript是一种脚本语言,是采用小程序段的方式实现编程。正如其它脚本语言一样,JavaScript也是一种解释性语言,它提供了一个容易的开发过程。JavaScript的基本结构形式与其它高级语言类似(如 C、C++、VB、Delphi 等),但它与这些高级语言不同的是,其它高级语言需要先进行编译然后才能被执行,JavaScript则是在程序运行过程中一条一条被解释执行。JavaScriptHTML结合在一起,极大地方便了用户的使用操作。

(2) JavaScript是面向对象的语言

JavaScript是一种面向对象的语言,那就是说,它本身也可以创建对象,以及调用对象的操作。因此,JavaScript的诸多功能可以来自于脚本环境中各种对象的调用。

(3) JavaScript的简单性

 之所以说JavaScript是简单的,首先是因为它是一种基于Java的基本语句和控制流之上的简单而紧凑的设计,这对于更进一步学习Java是一个非常好的过渡,其次是因为它的所有变量都是弱类型,并且都没有像其它需要编译的高级语言那样使用严格的数据类型。

(4) JavaScrip的安全性

JavaScrip就像Java一样是一种非常安全的语言,它不允许访问本地的硬盘,并且不允许把数据存入到服务器上,还不允许对网络文档进行修改和删除,只允许通过浏览器实现信息浏览和动态交互,这样确保了对数据的安全化操作。

(5) JavaScript的动态性

 之所以说JavaScript是动态的,是因为它可以直接对用户或客户的输入操作做出响应,而不必经过web服务器或web服务器程序。

JavaScript 对用户的响应是采用事件驱动的方式进行的。简单地说,事件驱动是指在页面中执行了某种操作后产生相应的动作,例如,按下鼠标、选择菜单以及移动窗口等都可以被视为事件,当事件发生后,就会有相应的事件响应该事件。

(6) JavaScript的跨平台性

JavaScriptJava一样是与操作环境无关的,它只依赖于浏览器,只要客户的计算机浏览器支持JavaScrip,它就可以被正确解释执行。从而实现一次编写,到处运行。

综合以上特点,JavaScrip是一种全新的描述性语言,它可以完全被嵌入到HTML文档中运行。JavaScrip可以在不用任何的网络来回传输控制命令的前提下做到响应使用者的需求事件(如form的输入等)。因此当一个用户输入某一项资料时,它并不用经常传给服务端处理,再传回客户端的过程,而是可以直接被客户端的应用程序自己处理,节省了服务器处理时间。


2.JavaScript可以做什么

JavaScript虽然是一种简单的语言,但它的功能却很强大,具体如下:

(1) 制作网页特效

 这几乎是所有JavaScript的初学者都想学习 JavaScript 的第一个动机,例如:光标动画、信息提示、动态广告面板、检测鼠标行为等。

(2) 提升使用性能

 越是复杂的代码,越要耗费系统资源来执行它,因为大部分的 JavaScript 程序代码都在客户端执行,操作时完全不用服务器操心,这样,网页服务器就可以将资源用在提供客户端更多更好的服务上。现今,越来越多的网站包含表单的结构,例如:申请会员要填写入会的基本表单,JavaScript 的任务,就是在CGI程序将客户端所填写的数据送到服务器之前,先作必要的数据有效性测试,例如:该输入数字的地方是否有数字等等,这样的验证无疑提升了性能。

(3) 窗口动态操作

 利用JavaScript,可以很自由地设计网页窗口的大小、窗口的打开与关闭等,甚至也可以在不同窗口文件中互相传递参数。


3.JavaScript的执行平台

JavaScript既然是Netscape公司发展出来的脚本语言,当然可以在Netscape公司自家的浏览器软件Navigator中执行,因此从早期的版本**(Navigator 2.0)到推出不久的(Navigator 6.0) 都全力支持 JavaScript

 微软从
IE 3.0以后的版本开始陆续地支持不同版本的JavaScript**,有了微软作为坚强后盾,JavaScript马上走红,迅速席卷网页脚本语言的市场。

 时至今日,几乎所有的浏览器都已经支持JavaScript。因为不支持的几乎都已经被Internet市场所淘汰。


4.编写JavaScript程序

(1) 扩展名的命名

 一般而言JavaScript代码会直接嵌入HTML文档中,因此文件的扩展名是htmlhtml;而如果将程序代码独立成一个文件,应该使用js 的扩展名。

(2) 执行的顺序

JavaScript 代码是通过浏览器的解释器逐行地编译并执行的,因此是由上而下地执行。

(3) 语句的末端可以加上分号

 对于习惯 CC++ 的程序员而言,可能已经很习惯在程序语句的最后加上分号“;”,在 JavaScript 程序中,可以保留这一习惯,当然,如果懒得写或忘记写,也不至于发生什么错误。


✨最后✨

总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!
如有问题,欢迎评论区批评指正😁

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

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

相关文章

垃圾收集器与内存分配策略

内存分配和回收原则 对象优先在Eden区分配 大对象直接进入老年代 长期存活的对象进入老年代 什么是内存泄漏 不再使用的对象在系统中未被回收&#xff0c;内存泄漏的积累可能会导致内存溢出 自动垃圾回收与手动垃圾回收 自动垃圾回收&#xff1a;由虚拟机来自动回收对象…

什么是高并发系统?

1.1 什么是高并发&#xff1f; 高并发&#xff08;High Concurrency&#xff09;&#xff0c;通常是指通过设计保证系统能够同时处理很多请求。即在同一个时间点&#xff0c;有很多的请求同时访问同一个接口。高并发意味着大流量&#xff0c;需要运用技术手段去抵抗这种大流量…

用通俗易懂的方式讲解大模型:Prompt 提示词在开发中的使用

OpenAI 的 ChatGPT 是一种领先的人工智能模型&#xff0c;它以其出色的语言理解和生成能力&#xff0c;为我们提供了一种全新的与机器交流的方式。但不是每个问题都可以得到令人满意的答案&#xff0c;如果想得到你所要的回答就要构建好你的提示词 Prompt。本文将探讨 Prompt 提…

yolov5旋转目标检测-遥感图像检测-无人机旋转目标检测-附代码和原理

综述 为了解决旋转目标检测问题&#xff0c;研究者们提出了多种方法和算法。以下是一些常见的旋转目标检测方法&#xff1a; 基于滑动窗口的方法&#xff1a;在图像上以不同的尺度和角度滑动窗口&#xff0c;通过分类器判断窗口中是否存在目标。这种方法简单直观&#xff0c;…

Flutter 三点二:Dart 异步 async 和 await

async 和 await Future 链式调用 更清晰异步操作依赖关系比较复杂 可使用async awaitasync await 调用逻辑更清晰async await 异常处理 try{}catch(){} 即可async 修饰的方法 总是返回Future对象 不会阻塞主线程await 关键字只有在async修饰的方法内才有效都是把事件交给 Even…

数据可视化能为我们带来哪些好处?

在信息爆炸的时代&#xff0c;数据量呈指数级增长&#xff0c;企业和个人都面临着处理大量信息的挑战。在这个背景下&#xff0c;数据可视化崭露头角&#xff0c;成为解决复杂数据呈现和理解难题的得力工具。那么&#xff0c;数据可视化究竟能为我们带来哪些好处呢&#xff1f;…

SeaTunnel流处理同步MySQL数据至ClickHouse

ClickHouse是一种OLAP类型的列式数据库管理系统&#xff0c;ClickHouse完美的实现了OLAP和列式数据库的优势&#xff0c;因此在大数据量的分析处理应用中ClickHouse表现很优秀。 SeaTunnel是一个分布式、高性能、易扩展、用于海量数据同步和转化的数据集成平台。用户只需要配置…

YOLOv5改进 | 2023注意力篇 | BiFormer双层路由注意力机制(Bi-level Routing Attention)

一、本文介绍 BiFormer是一种结合了Bi-level Routing Attention的视觉Transformer模型&#xff0c;BiFormer模型的核心思想是引入了双层路由注意力机制。在BiFormer中&#xff0c;每个图像块都与一个位置路由器相关联。这些位置路由器根据特定的规则将图像块分配给上层和下层路…

网站提示“不安全”怎么解决

在互联网中&#xff0c;安全问题至关重要。访问某些网站时&#xff0c;可能会遇到“不安全”警告&#xff0c;通常是由于缺乏SSL证书。SSL证书是数字证书&#xff0c;用于确保互联网通信的安全和保密。 “不安全”问题通常源于缺少SSL证书。SSL通过加密通信&#xff0c;防止第三…

mac下jd-gui提示没有找到合适的jdk版本

mac下jd-gui提示jdk有问题 背景解决看一下是不是真有问题了方法一&#xff1a;修改启动脚本方法二&#xff1a;设置launchd环境变量 扩展动态切jdk脚本(.bash_profile) 背景 配置了动态jdk后&#xff0c;再次使用JD-GUI提示没有找到合适的jdk版本。 解决 看一下是不是真有问题…

学习使用wps将ppt的页面保存为图片的方法

学习使用wps将ppt的页面保存为图片的方法 方案 方案 1、打开ppt&#xff0c;点击文件&#xff0c;另存为&#xff0c;选择文件类型为图片格式&#xff0c;jpg或者png&#xff0c;如下图&#xff1a; 2、点击每张幻灯片

MacOS安装JDK8

下载 oracle官网下载。 oracle官网 镜像下载。 华为&#xff1a;https://repo.huaweicloud.com/java/injdk&#xff1a;https://www.injdk.cn 安装 下载完成后双击pkg&#xff0c;按提示流程安装。 安装完成后打开终端窗口&#xff0c;执行命令查看版本&#xff1a; java -…

MySql 性能优化神器之 explain 详解

目录 一. 前言 二. explain 详解 2.1. 概念 2.2. 数据准备 2.3. id 2.3.1. id 相同&#xff0c;执行顺序由上至下 2.3.2. id 不同&#xff0c;数字越大优先级越高 2.3.3. id 存在相同的和不同的 2.4. select_type 2.5. table 2.6. partitions 2.7. type 2.7.1. sy…

【Python基础】字符串

文章目录 [toc]什么是字符串索引示例索引越界 切片语法示例 字符串方法find()方法rfind()方法count()方法replace()方法 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python基础 什么是字符串 如下定义的变量url存储的是字符串类型的值 url www.baidu.com print(url)u…

【Unity入门】RequireComponent的使用

RequireComponent的作用 RequireComponent 属性自动将所需的组件添加为依赖项。 当某个脚本必须依赖其他脚本或者组件共同使用时&#xff0c;为了避免人为添加过程的操作失误&#xff0c;可以在代码中使用RequireComponent&#xff0c;它的作用就是添加该脚本时&#xff0c;会…

[玩转AIGC]LLaMA2之如何跑llama2.c的chat模式

前言&#xff1a;之前我们关于llama2的相关内容主要停留在gc层面&#xff0c;没介绍chat模式&#xff0c;本文将简单介绍下llama2.c的chat模式如何跑起来。训练就算了&#xff0c;没卡训练不起来的&#xff0c;但是用CPU来对别人训练好的模型进行推理还是绰绰有余的&#xff0c…

无监督学习(上)

我们实际用到的项目大都是有监督的&#xff0c;而人工智能未来的一大难点将会是无监督学习。在前面说过的降维算法&#xff0c;大部分都是无监督&#xff0c;除了LDA。 无监督算法有聚类&#xff0c;密度估计&#xff0c;常常用在做分类或者异常检测上。 一.聚类 聚类就是识…

机器学习分类

1. 监督学习 监督学习指的是人们给机器一大堆标记好的数据&#xff0c;比如&#xff1a; 一大堆照片&#xff0c;标记出哪些是猫的照片&#xff0c;哪些是狗的照片 让机器自己学习归纳出算法或模型 使用该算法或模型判断出其他没有标记的照片是否是猫或狗 上述流程如下图所…

2023中国企业级存储市场:整体韧性成长,领域此消彼长

多年之后回头看&#xff0c;2023年也许是中国企业级存储市场标志性的一年。 后疫情时代的开启&#xff0c;中国数字经济快速发展、数据产业方兴未艾&#xff0c;为数据存储市场带来了前所未有的活力&#xff1b;与此同时&#xff0c;外部环境的不确定性骤增&#xff0c;人工智…

Qt+Opencv:人脸检测

话接上一篇&#xff0c;我们仍使用在上篇《QtOpencv&#xff1a;Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。 在正式开始本篇之前&#xff0c;我们先说做一下准备工作&#xff1a; 一、opencv官方文档 学习最权威和最可靠的方式&#xff0c;就是阅读官方文档和…