【JavaScript 基础入门】02 JavaScrip 详细介绍

JavaScrip 详细介绍

目录

  • JavaScrip 详细介绍
    • 1. JavaScript 是什么
    • 2. JavaScript的作用
    • 3. HTML/CSS/JS 的关系
    • 4. 浏览器执行 JS 简介
    • 5. JavaScript 的组成
    • 6. JavaScript 的特点

1. JavaScript 是什么

JavaScript,通常缩写为 JS,是一种高级的,解释执行的编程语言。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。它已经由 ECMA(欧洲计算机制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。

虽然 JavaScript 与 Java 这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript 的语言设计主要受到了 Self(一种基于原型的编程语言)和 Scheme(一门函数式编程语言)的影响。在语法结构上它又与 C 语言有很多相似,例如 if 条件语句、while 循环、switch 语句、do-while 循环等。

在客户端,JavaScript 在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的 HTML5 和 CSS3 语言标准的推行,它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如 Node.js。

注:定义来自于维基百科。

总结:

  • JavaScript 是世界上最流行的语言之一,是一种运行在客户端(浏览器)的脚本语言 (Script 是脚
    本的意思)
  • 脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行
  • 现在也可以基于 Node.js 技术进行服务器端编程

2. JavaScript的作用

  • 表单动态校验(针对表单的合法性进行判断)( JS 产生最初的目的 )
  • 网页特效(监听用户的一些行为让网页作出对应的反馈)
  • 数据交互(获取后台的数据,渲染到前端)
  • 服务端开发(Node.js)
  • 桌面程序(Electron)
  • App(Cordova)
  • 控制硬件-物联网(Ruff)
  • 游戏开发 (cocos2d-js)

3. HTML/CSS/JS 的关系

在这里插入图片描述

4. 浏览器执行 JS 简介

  • 浏览器分成两部分:渲染引擎和 JS 引擎
    在这里插入图片描述

  • 浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行
    在这里插入图片描述

5. JavaScript 的组成

在这里插入图片描述

  1. ECMAScript

    • ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript或 JScript,但实际上后两者是ECMAScript 语言的实现和扩展
      在这里插入图片描述
    • ECMAScript:规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准
  2. DOM——文档对象模型

    • 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)
  3. BOM——浏览器对象模型

    • 浏览器对象模型(Browser Object Model,简称BOM)是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等
  4. 总结

    • ECMAScript:JavaScript 的语法标准。
    • DOM:JavaScript 操作网页上的元素的 API。
    • BOM:JavaScript 操作浏览器的部分功能的 API。

6. JavaScript 的特点

  • 可以使用任何文本编辑工具编写,然后使用浏览器就可以执行程序。
  • 是一种解释型脚本语言:代码不进行预编译,从上往下逐行执行,不需要进行严格的变量声明。
  • 主要用来向 HTML 页面添加交互行为。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SpringSpringBoot】概述

Spring&SpringBoot专题 【注】: 本专题围绕框架核心概念展开,渐进式深入总结学习、面试、开发经验,集中整理便于回顾 持续补充与施工中~~~~ 1.发展史 2.基本架构 Spring框架的基本架构是一个分层架构,包括多个模块&#x…

STL---stackqueue

一、stack 1.stack的介绍 stack介绍文档 https://legacy.cplusplus.com/reference/stack/stack/?kwstack 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适…

AI技术大揭秘:探索人工智能的核心领域与必备技能

随着人工智能的不断进步,AI技术在各个领域都发挥着越来越关键的作用。想要成为AI领域的从业者,不仅需要对整体格局有清晰认识,更要掌握关键技术和必备技能。本文将深入解析AI的核心技术领域,以及在这个前沿领域里需要掌握的技能。…

Java_集合类

集合可以看作是一个容器,集合中的各个对象,很容易将其从集合中取出来,也很容易将其存放到集合中,还可以按照一定的顺序进行摆放。JAVA中提供了不同的集合类,这些类具有不同的存储对象的方式,同时提供了相应…

04-JVM虚拟机-课堂笔记

04-JVM虚拟机 1. JVM虚拟机概述 1.4 对象的创建流程与内存分配 1.4.1 创建流程 1.4.2 对象内存分配方式 内存分配的方法有两种:不同垃圾收集器不一样 指针碰撞(Bump the Pointer) 空闲列表(Free List) 分配方法说明收集器指针碰撞(Bump the Pointer)内存地址…

论机器生产内容MGC与新数字时代的两个世界

摘要:本文从新数字时代人类社会的两种存在形态:数字世界(元宇宙)与物理世界(时空宇宙),以及新兴数字产业:机器生产内容MGC的发展、现状与未来出发,通过对新数字时代及两个…

【MIdjourne基础】 |MIdjourney基础参数全解析,各类辅助知识

文章目录 1 参数列表1.1 基础参数列表 2 基础参数详解2.1 模型版本选择2.2 模型出图模式选择2.3 基础生图参数2.3.1 --ar2.3.2 --stylize2.3.3 --no2.3.4 --chaos2.3.5 --quality2.3.6 --stop2.3.7 --hd2.3.8 --repeat 1 参数列表 1.1 基础参数列表 模型版本选择 目标参数作…

什么是微服务?(微服务的技术栈)

微服务是一种架构风格,它将一个单一的应用拆分为多个小型的服务,每个服务运行在自己的进程中,服务间采用轻量级的通信机制(如HTTP/webservice等)。这些服务围绕业务能力构建,并且可以全自动独立部署。微服务…

PageHelper 分页逻辑 源码解析

一、PageHelper PageHelper 是一个用于在 MyBatis 中进行分页查询的开源分页插件。它能够方便地帮助开发者处理分页查询的逻辑,简化代码,并提高开发效率。PageHelper 支持多种数据库,包括 MySQL、Oracle、PostgreSQL 等。 PageHelper 的实现…

了解OpenCV的数据类型

OpenCV是一个开源的计算机视觉库,广泛应用于图像和视频处理领域。在OpenCV中,数据类型扮演着非常重要的角色,它们决定了数据的存储方式和操作方式。本文将介绍OpenCV中常见的数据类型,包括图像数据类型、矩阵数据类型和轮廓数据类…

使用Python和ffmpeg旋转WebM视频并保存为MP4文件

简介: 在本篇博客中,我们将介绍如何使用Python编写一个程序,结合wxPython和ffmpeg模块,来旋转WebM视频文件并将其保存为MP4格式。我们将使用wxPython提供的文件选择对话框来选择输入和输出文件,并使用ffmpeg库来进行视频旋转操作。…

IS-IS:09 ISIS路由过滤

在IS-IS 网络中,有时需要使用 filter-policy 工具对 IS-IS 路由进行过滤。这里所说的过滤,是指路由器在将自己IS-IS 路由表中的某些 IS-IS 路由纳入进自己的 IP 路由表的过程,一些满足了过滤条件的 IS-IS 路由将被限制纳入 IP 路由表中。 需要…

程序员该懂的一些测试(四)测试覆盖率

测试覆盖率通常被用来衡量测试的充分性和完整性,从广义的角度来讲,测试覆盖率主要分 为两大类,一类是面向项目的需求覆盖率,另一类是更偏向技术的代码覆盖率。 需求覆盖率 需求覆盖率是指测试对需求的覆盖程度,通常的…

Linux 驱动开发基础知识——总线设备驱动模型(七)

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…

C++ //练习 3.5 编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分隔开来。

C Primer(第5版) 练习 3.5 练习 3.5 编写一段程序从标准输入中读入多个字符串并将它们连接在一起,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分隔开来。 环境:Linux Ubuntu(云服务…

.NET高级面试指南专题三【线程和进程】

在C#中,线程(Thread)和进程(Process)是多任务编程中的重要概念,它们用于实现并发执行和多任务处理。 进程(Process): 定义: 进程是正在运行的程序的实例&…

ThinkPhp3.2(qidian)部署文档

宝塔环境部署 申请域名以及域名解析 具体配置,可百度之 在宝塔面板中创建网站 上传代码导入数据配置运行目录 注意:(如果版本:thinkphp3.2 )配置 运行目录要特别注意:运行目录要选择根目录“/”&#xff…

【c++】类和对象 - 类的引入和定义

1.类的引入 C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C方式实现,…

报错:AttributeError: ‘str‘ object has no attribute ‘decode‘

original_keras_version f.attrs[‘keras_version’].decode(‘utf8’) AttributeError: ‘str’ object has no attribute ‘decode’ 1、问题描述 original_keras_version f.attrs[keras_version].decode(utf8) AttributeError: str object has no attribute decode2、原…

【英语趣味游戏】填字谜(Crossword)第1天

谜题出处 柯林斯字谜大全(6),Collins——Big Book of Crosswords(Book 6) Puzzle Number: 114 本期单词 横向 1、Situation involving danger (4) 包含危险的情境,4个字母 答案:Risk&#xff…