当前位置: 首页 > news >正文

编程笔记 html5cssjs 061 JavaScrip简介

编程笔记 html5&css&js 061 JavaScrip简介

  • 一、JavaScript概述
  • 二、JavaScript的主要特点
  • 三、历史延革
  • 四、JavaScript与前端开发
  • 小结

JavaScript 是 web 开发者必学的三种语言之一:HTML 定义网页的内容;CSS 规定网页的布局;JavaScript 对网页行为进行编程。接下来学习JavaScript,以及 JavaScript 如何与 HTML 和 CSS 协同工作的知识。

一、JavaScript概述

JavaScript是一种广泛使用的编程语言,用于为网页添加交互功能。它是一种脚本语言,意味着它可以在浏览器中直接运行,而无需编译。JavaScript可以在客户端执行,与HTML和CSS配合使用,以实现动态网页效果。
JavaScript最初由网景公司的Brendan Eich于1995年开发,当时被称为LiveScript。后来,为了利用当时非常流行的Java语言的声誉,它被更名为JavaScript。虽然它的名称与Java相似,但它们是完全不同的语言。
JavaScript是一种面向对象的语言,它支持封装、继承和多态的概念。它还有许多内置的对象和方法,可以用于处理字符串、数组、日期等数据类型。JavaScript还可以与浏览器交互,通过DOM(文档对象模型)和BOM(浏览器对象模型),可以对网页的结构和内容进行操作。
JavaScript也是一种多用途的语言,它可以用于开发各种类型的应用程序,包括网页应用程序、移动应用程序和桌面应用程序。它还可以与其他编程语言(如PHP、Python和Java)配合使用,以实现更复杂的功能。
总而言之,JavaScript是一种强大且灵活的编程语言,它在Web开发中起着至关重要的作用。无论是初学者还是经验丰富的开发人员,都可以使用JavaScript来创建交互式和动态的网页。

二、JavaScript的主要特点

  1. 客户端脚本语言:主要在用户端(浏览器)运行,处理网页上的用户交互、数据验证、DOM操作等任务。
  2. 基于原型的对象系统:不同于传统的类继承,JavaScript采用基于原型链的继承机制。
  3. 动态类型:变量的数据类型可以自动转换,无需显式声明。
  4. 函数作为一等公民:函数可被赋值给变量、作为参数传递或作为返回值,支持闭包等特性。
  5. 异步编程模型:早期借助回调函数处理异步操作,现代JavaScript引入了Promise、async/await等更先进的异步编程工具。
  6. 跨平台能力增强:随着Node.js等技术的出现,JavaScript也能够在服务器端运行,实现全栈开发,并且现在也被用于移动应用开发(如React Native、Ionic)、游戏开发(Phaser、Three.js)以及其他非浏览器环境。
    JavaScript的标准被称为ECMAScript,由ECMA International组织制定并维护。目前最新的ECMAScript标准版本不断更新以适应和推动Web技术的发展。

三、历史延革

JavaScript的历史延革可以概括如下:

  1. 诞生与初期发展(1995年):
    • JavaScript由Netscape公司的Brendan Eich在短短十天内设计完成,最初命名为Mocha,后改名为LiveScript。
    • 在Netscape Navigator 2.0浏览器中首次搭载发布时,由于当时Netscape公司与Sun Microsystems的合作关系以及Java语言的流行,最终更名为JavaScript。
  2. 标准化过程(1996年以后):
    • 随着JavaScript的广泛应用,为了促进其标准化和跨浏览器兼容性,ECMA International(欧洲计算机制造商协会)开始制定JavaScript的标准版本,即ECMAScript标准。
    • 1997年,第一版ECMAScript标准(ECMAScript 1)正式发布。
  3. 中期发展与竞争(1997-2004年):
    • 不同浏览器对JavaScript的支持程度各异,导致了跨浏览器兼容问题,开发者不得不针对不同浏览器编写不同的代码。
    • 各大浏览器厂商如Microsoft Internet Explorer、Mozilla Firefox等不断改进各自的JavaScript引擎,推动性能提升和技术进步。
  4. 现代化变革(2005年后):
    • AJAX技术兴起,JavaScript在异步Web应用开发中的地位进一步加强。
    • ECMAScript新版本逐步引入更多现代编程特性,例如ES5(2009年发布)带来了严格模式、getter/setter等新功能。
    • ES6/ES2015(2015年发布)是一次重大更新,引入了类、模块、箭头函数、解构赋值、let和const声明、Promise等众多新特性和优化。
  5. 持续创新与发展(2015年至今):
    • ECMAScript每年都有新版本发布,包括ES2016、ES2017等等,每个新版本都在增加新的语法糖、改进底层性能,并强化异步编程能力。
    • Node.js平台让JavaScript成为服务端开发的选择之一,促进了全栈JavaScript开发的普及。
    • WebAssembly(WASM)的出现,使得其他编译型语言也能高效运行于浏览器环境,但JavaScript仍然作为Web开发的核心脚本语言。
      总之,从诞生至今,JavaScript经历了从简单的网页脚本语言到复杂应用开发工具的转变,已经成为现代Web开发不可或缺的一部分,并且在非浏览器环境中也找到了广泛的应用场景。

四、JavaScript与前端开发

JavaScript在前端开发中扮演着至关重要的角色。前端开发是指构建Web用户界面(UI)和实现交互逻辑的开发工作,它主要涉及到三个核心技术:HTML、CSS和JavaScript。
HTML:定义了网页的内容结构。

  • CSS:负责网页的表现样式,包括布局、颜色、字体等视觉效果。
  • JavaScript:为网页提供了行为和交互能力。通过JavaScript,开发者可以编写脚本,响应用户的输入事件、操作DOM(文档对象模型)、处理数据、执行异步通信(如Ajax请求)、实现动画效果以及构建复杂的单页应用(SPA)等。
    具体来说,在前端开发中的作用:
  1. DOM操作:JavaScript可以直接与HTML元素进行交互,动态地修改页面内容、添加或删除元素、改变属性等。
  2. 用户交互:JavaScript可以监听和处理各种用户事件,比如点击按钮、提交表单、滑动滚动条等,并基于这些事件做出相应的反馈。
  3. 数据验证:在表单提交之前,JavaScript能够对用户输入的数据进行实时验证,确保其符合预期格式和规则。
  4. 异步编程:JavaScript支持异步编程模式,用于加载后台数据而不阻塞页面渲染,例如使用XMLHttpRequest或Fetch API实现Ajax请求。
  5. 库和框架:现代前端开发中广泛使用诸如jQuery、React、Vue.js、Angular等JavaScript库和框架来简化开发流程,提高代码复用性和可维护性。
  6. 功能增强:JavaScript可以创建丰富的用户体验,如轮播图、拖拽功能、地图集成、音频视频播放控制等。
    因此,JavaScript是前端开发的核心技术之一,它的存在极大地丰富了Web应用的功能性和互动性,使得静态网页转变为功能强大、响应迅速的动态应用程序成为可能。

小结

学习编程语言,先学javascript是一个合理的次序,它易于理解,用途明确,效果直观,可以为形成较好的编程能力打开基础。

相关文章:

编程笔记 html5cssjs 061 JavaScrip简介

编程笔记 html5&css&js 061 JavaScrip简介 一、JavaScript概述二、JavaScript的主要特点三、历史延革四、JavaScript与前端开发小结 JavaScript 是 web 开发者必学的三种语言之一:HTML 定义网页的内容;CSS 规定网页的布局;JavaScript…...

计算机网络 第5章(运输层)

系列文章目录 计算机网络 第1章(概述) 计算机网络 第2章(物理层) 计算机网络 第3章(数据链路层) 计算机网络 第4章(网络层) 计算机网络 第5章(运输层) 计算机…...

pythonSM4加密

数据安全法及密评要求,敏感数据系统需要使用国密算法进行加解密处理。 敏感数使用SM4/ECB加解密方式 #密钥参数epidemic_key #加密信息参数 message #加密算法SM4/ECB/PKCS5Padding #加密类型SM4-ECB #添加模式PKCS5Padding from cryptography.hazmat.primitives.…...

JSP在线阅读系统myeclipse定制开发SQLServer数据库网页模式java编程jdbc

一、源码特点 JSP 小说在线阅读系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库 ,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#…...

el-date-picker设置default-time的默认时间

default-time &#xff1a;选择日期后的默认时间值。 如未指定则默认时间值为 00:00:00 默认值修改 <el-form-item label"计划开始时间" style"width: 100%;" prop"planStartTime"><el-date-picker v-model"formData.planStart…...

List集合根据对象某个元素去重

序言 检视代码时有下面这样一段代码&#xff08;已脱敏处理&#xff09;&#xff0c; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors…...

QML Qt4版本移植到Qt5概述

C++代码 在Qt5中,QML应用程序使用OpenGL场景图架构来渲染,而在Qt4中使用的是图形视图框架。这种结构上的变化导致C++接口进行了大量重构。QtDeclarative模块已被弃用,该模块的类被移动到新的QtQML和QtQuick模块中,名称有了变化,如表3-1所列。如果需要使用Qt5中新的QQml和…...

【极数系列】Flink环境搭建Linux版本 (03)

文章目录 引言01 Linux部署JDK11版本1.下载Linux版本的JDK112.创建目录3.上传并解压4.配置环境变量5.刷新环境变量6.检查jdk安装是否成功 02 Linux部署Flink1.18.0版本1.下载Flink1.18.0版本包2.上传压缩包到服务器3.修改flink-config.yaml配置4.启动服务5.浏览器访问6.停止服务…...

2023年深圳市节假日人口迁入数据,shp/excel格式,需要自取!

基本信息. 数据名称: 深圳市节假日人口迁入数据 数据格式: Shp、excel 数据时间: 2023年国庆节 数据几何类型: 线 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1a0928迁入人口占迁入深圳市人口的比值&#xff0…...

Windows10上通过MSYS2编译FFmpeg 6.1.1源码操作步骤

1.从github上clone代码&#xff0c;并切换到n6.1.1版本&#xff1a;clone到D:\DownLoad目录下 git clone https://github.com/FFmpeg/FFmpeg.git git checkout n6.1.1 2.安装MSYS2并编译FFmpeg源码: (1).从https://www.msys2.org/ 下载msys2-x86_64-20240113.exe &#…...

HiveSQL题——用户连续登陆

目录 一、连续登陆 1.1 连续登陆3天以上的用户 0 问题描述 1 数据准备 2 数据分析 3 小结 1.2 每个用户历史至今连续登录的最大天数 0 问题描述 1 数据准备 2 数据分析 3 小结 1.3 每个用户连续登录的最大天数(间断也算) 0 问题描述 1 数据准备 2 数据分析 3 小…...

题解仅供学习使用

...

Linux命令-apt-get命令(Debian Linux发行版中的APT软件包管理工具)

补充说明 apt-get命令 是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个 包管理系统。deb包可以把一个应用的文件包在一起&#xff0c;大体就如同Windows上的安装文件。 语法 apt-get [OPTION] PACKAGE选项 apt-get install 安装新包 apt-get r…...

matlab appdesigner系列-仪器仪表3-旋钮

旋钮&#xff0c;同过旋转显示特定的值 示例&#xff1a;模拟收音机调频 操作步骤&#xff1a; 1&#xff09;将旋钮、标签按钮拖拽到画布上&#xff0c;将标签文字修改为&#xff1a;欢迎收听&#xff0c;并将旋钮其数值范围改为90-107 2&#xff09;设置旋钮的回调函数 代…...

常见の算法5

位图 一个int类型32字节&#xff0c;可以表示0-31这32个数出没出现过&#xff0c;出现过1没出现0&#xff0c;再扩大一点搞个数组&#xff0c;就可以表示0-1023出没出现过&#xff0c;一个long类型可储存64位 如何把10位组成的数&#xff0c;第四位由1改成零 package class05…...

MYSQL中group by分组查询的用法详解(where和having的区别)!

文章目录 前言一、数据准备二、使用实例1.如何显示每个部门的平均工资和最高工资2.显示每个部门的每种岗位的平均工资和最低工资3.显示平均工资低于2000的部门和它的平均工资4.having 和 where 的区别5.SQL查询中各个关键字的执行先后顺序 前言 在前面的文章中&#xff0c;我们…...

架构篇25:高可用存储架构-双机架构

文章目录 主备复制主从复制双机切换主主复制小结存储高可用方案的本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用,其复杂性主要体现在如何应对复制延迟和中断导致的数据不一致问题。因此,对任何一个高可用存储方案,我们需要从以下几个方面去进行思考…...

微信小程序(十五)自定义导航栏

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.组件文件夹创建方法 2.自定义组件的配置方法 3.外部修改组件样式&#xff08;关闭样式隔离或传参&#xff09; 创建组件文件夹 如果是手动创建建议注意在json文件声明&#xff1a; mynav.json {//声明为组件可…...

Python3进行pdf文件分割及转word

今天有个pdf分割的需求&#xff0c;电脑装的Python3&#xff0c;网上查资料都是Python2的代码&#xff0c;所以整理一份3的 安装&#xff1a; pip install PyPDF2 import PyPDF2def funSplitPdf():pdf_file open(/path/fileName.pdf, rb)pdf_reader PyPDF2.PdfReader(pdf_fi…...

深入理解TCP网络协议(1)

目录 1.TCP协议的段格式 2.TCP原理 2.1确认应答 2.2超时重传 3.三次握手(重点) 4.四次挥手 1.TCP协议的段格式 我们先来观察一下TCP协议的段格式图解: 源/目的端口号:标识数据从哪个进程来,到哪个进程去 32位序号/32位确认号:TCP会话的每一端都包含一个32位&#xff08…...

QT 中如何使用 JSON 功能?

在 Qt 中&#xff0c;您可以使用 QJsonDocument、QJsonObject 和 QJsonArray 类来处理 JSON 数据。以下是一个简单的示例&#xff0c;说明如何在 Qt 中使用这些类来解析和生成 JSON 数据&#xff1a; 1. 包含必要的头文件 首先&#xff0c;确保您的项目中包含了必要的 Qt JSO…...

C++面试:算法的执行效率和资源消耗、时间和空间复杂度分析根据实际场景,选用合适的数据结构和算法进行程序设计

目录 算法的执行效率和资源消耗、时间和空间复杂度分析 执行效率和资源消耗 时间复杂度分析 空间复杂度分析 实际应用 面试技巧 根据实际场景&#xff0c;选用合适的数据结构和算法进行程序设计 所根据原则 实例 如何选择数据结构示例 合适的数据结构&#xff1a;哈…...

力扣100215-按键变更的次数

按键变更的次数 题目链接 解题思路 我们发现只要相邻的两个字母不一样(大小写算一样)&#xff0c;那么按键变更次数就要加1 class Solution { public:int countKeyChanges(string s) {int ans 0;for(int i 1;i<s.size();i){if(s[i] - s[i-1] 32 || s[i] - s[i-1] -32 |…...

STM32-GPIO输出(HAL库)

STM32-GPIO 介绍 什么是GPIO&#xff1f; GPIO&#xff08;通用输入/输出&#xff09;是一种用于与外部设备进行数字通信的通用硬件接口。它允许微控制器或其他数字电路的引脚以灵活的方式配置为输入或输出&#xff0c;并在运行时进行动态控制。GPIO可用于连接和控制各种外围…...

倒计时80天

1.J-兔子不会种树_浙江机电职业技术学院第八届新生亮相赛&#xff08;同步赛&#xff09; (nowcoder.com) /****** __----~~~~~~~~~~~------___* . . ~~//...... __--~ ~~…...

PBM模型参数详解

本专栏着重讲解PBM学习所得&#xff0c;学习笔记、心得&#xff0c;并附有视频素材资料&#xff0c;视频详细目录如下&#xff1a; PBM相关参数解释1PBM相关参数解释2PBM相关案例实践1PBM相关案例实践2PBM相关案例实践2PBM相关案例实践3PBM多相流中次相界面设置1PBM多相流中次…...

贪吃蛇/链表实现(C/C++)

本篇使用C语言实现贪吃蛇小游戏&#xff0c;我们将其分为了三个大部分&#xff0c;第一个部分游戏开始GameStart&#xff0c;游戏运行GameRun&#xff0c;以及游戏结束GameRun。对于整体游戏主要思想是基于链表实现&#xff0c;但若仅仅只有C语言的知识还不够&#xff0c;我们还…...

Qlik Sense : IntervalMatch(离散匹配)

什么是IntervalMatch IntervalMatch 前缀用于创建表格以便将离散数值与一个或多个数值间隔进行匹配&#xff0c;并且任选匹配一个或多个额外关键值。 语法&#xff1a; IntervalMatch (matchfield)(loadstatement | selectstatement ) IntervalMatch (matchfield,keyfield…...

MySql45讲-08.事务到底是隔离的还是不隔离的?(结合MVCC视频)

命令的启动时机 begin/start transaction 命令并不是一个事务的起点&#xff0c;在执行到它们之后的第一个操作InnoDB表的语句&#xff0c;事务才真正启动。如果你想要马上启动一个事务&#xff0c;可以使用start transaction with consistent snapshot 这个命令。 事务的版本…...

备战蓝桥杯----数据结构及STL应用(基础2)

上次我们讲了vector的大致内容&#xff0c;接下来让我们讲一下栈&#xff0c;队列吧&#xff01; 什么是栈呢&#xff1f; 很简单&#xff0c;我们用的羽毛球桶就是&#xff0c;我们取的球&#xff0c;是最后放的&#xff0c;栈是一种先进后出的数据结构。 方法函数 s.push(…...