网页前端开发(基础进阶2--JS)

news2025/6/4 11:14:35

前面学习了html与css,接下来学习JS(JavaScript与Java无关)。

web标准(网页标准)分为3个部分:

1.html主要负责网页的结构(页面的元素和内容)

2.css主要负责网页的表现(元素的外观,位置等页面样式)

3.js主要负责网页的行为(交互效果 )

JavaScript是跨平台,脚本语言(不用编译,直接运行的语言)

JS主要负责控制网页的行为,实现网页的交互效果。

JS的组成(3个部分)

1.ECMAScript:规定了JS基础语法的核心知识,包含:变量,数据类型,流程控制,函数,对象。

2.BOM:浏览器对象模型,用于操作浏览器,如:页面弹窗,地址栏操作。

3.DOM:文档对象模型,用于操作html文档,改变标签内容,改变标签样式。

JS的核心语法

1.JS的引入方法

(1)使用内部脚本:将JS代码定义在html页面中。

        JS代码位于<script>  </script>标签之间

        在html文件中,可在任意地方,放置任意的<script>  </script>标签

建议在html文件中,将<script>  </script>标签放置在<body>的最下方

示例:

<body>

        ..........

        .........

        <script> 

                alert(‘hello world’)//弹出一个提示栏,显示hello world

        </script>

</body>

(2)使用外部脚本:新建text.js文件

        在text.js文件中写入 alert(‘hello world’)//弹出一个提示栏

        在html文件中,引用js文件。<script src=“js/text.js”> </script>

示例:

在text.js文件

alert(‘hello world’)

在html文件中

<body>

        ..........

        .........

       <script src=“js/text.js”> </script>

</body>

2.JS的基础语法

(1)声明变量

        JS中使用let声明变量,JS是若类型语言,同一变量可存放不同类型的值。

<body>

        ..........

        .........

        <script> 

                let a=20;

                a="hello";

                alert(a)//弹出一个提示栏,显示hello

                const PI=3.14;//使用const定义变量,定义后变量不可改变

                PI=3.2;//报错

        </script>

</body>

(2)数据类型

        JS的数据类型分为两种:基本数据类型和引用数据类型(对象)。

        基本数据类型有5种,number(数字类型,包含整数,浮点数。NaN),boolear(布尔类型,只有true和false),null(为空),undefined(未初始化),string(字符串类型,推荐使用‘ ’单引号)。

        使用typeof可获取变量的数据类型。

<body>

        ..........

        .........

        <script> 

                let name='Tom';

                let age=20;

                console.log('你好,我是'+name+',我今年'+age+'岁了。')

                console.log(`你好,我是${name},我今年${age}岁了。`)//可使用` `反引号,对字符串进行拼接,使用${ }。

                alert(typeof name); //获取变量name的数据类型,为string(字符串)。

        </script>

</body>

     

 (3)函数 function

        函数:执行特定任务的代码块,方便程序的封装复用。

JS中函数的定义

function My(参数1,参数2){

        ..............
}

示例:

<body>

        ..........

        .........

        <script> 

                function add(a,b){

                        return a+b;
                }

                let result=add(10,20);

                console.log(result)

        </script>

</body>

特殊的函数:匿名函数

方法1:

        let add=function(a,b){

                return a+b;
        }

方法2:

        let add=(a,b)=>{

                return a+b;
        }

 (4)自定义对象

定义格式

let user={

        name='Tom',

        age=20,

        gender=‘男’,

                sing:function(){

                        alert(‘我的名字是’+this.name);

                }

}

调用格式:

console.log(user.name);

user.sing();

 (5)json

json用于数据载体,用来存储数据。

特点:层次分明,结构简单

JS对象

{

        name=“Tom”,

        age=20,

        gender="男"

}

json文本

{

        "name"=“Tom”,

        "age"=20,

        "gender"="男"

}

JS对象->json文本 使用JSON.stringify()进行转换

json文本->JS对象 使用JSON.parse()进行转换

示例1

let person={

        name=“Tom”,

        age=20,

        gender="男"

}

alert(person)        //弹出框,只能弹出[Object,Object,Object]

alert(JSON.stringify(person))  //弹出框,弹出{"name"=“Tom”,"age"=20,"gender"="男"}

示例2

let personJ='{"name"=“Tom”,"age"=20,"gender"="男"}'

alert(JSON.parse(personJ).name)   //弹出Tom

JS的事件监听

        事件:HTML事件是发生在HTML元素上的事情。如:按钮被点击,鼠标移动到元素上,按下键盘的按钮。

        事件监听:JavaScript可以在事件1-触发时,就立即调用一个函数,做出响应,被称为“事件绑定”或“注册事件”。

        事件源:.addEventListener('事件类型',事件触发时执行的函数)

1.事件源:哪个元素触发事件,就获取哪个元素

2.事件类型:触发事件的类型。如:鼠标点击 click

3.事件触发时,执行的函数

示例1

<body>

        ..........

        .........

        <input id="bin" type="button" value="点击一下">

        <script> 

                document.querySelector('#bin').addEventListener('click',()=>{

                        alert('测试');   

                })

        </script>

</body>

示例二

鼠标移动,表格背景颜色改变

<body>

        ..........

        .........

        <script> 

                let trs=document.querySelectorAll('br');        //获取所有tr标签元素

                for(let i=0;i<trs.length;i++){

                        trs[i].addEventListener('moluseenter'.function(){  //鼠标进入

                                this.style.backgroundColor='#f2e2e2';        //将颜色改为粉色

                        });

                        

                        trs[i].addEventListener('moluseleave'.function(){   //鼠标离开

                                this.style.backgroundColor='#fff';        //将颜色恢复为白色

                        });

                }

        </script>

</body>

JS常见事件

1.鼠标事件

        click 鼠标单击

        moluseenter 鼠标进入

        moluseleave 鼠标离开

2.键盘事件

        keydown 按键按下

        keyup 键盘抬起        

3.焦点事件

        focus 聚焦组件

        blur 离焦组件

4.表单事件

        input 用户输入

        submit 表单提交触发

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

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

相关文章

Go 即时通讯系统:客户端与服务端 WebSocket 通信交互

客户端和服务端的交互 客户端与服务端建立连接 客户端&#xff1a;客户端通过浏览器或者其他应用程序发起一个 HTTP 请求到服务端的 /socket.io 路径。在请求中会携带用户的 UUID 作为参数&#xff08;通过 c.Query("user") 获取&#xff09;。 // router/socket.…

某航后缀混淆逆向与顶像风控分析

文章目录 1. 写在前面2. 接口分析3. 加密分析4. 风控分析 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致…

[Protobuf]常见数据类型以及使用注意事项

[Protobuf]常见数据类型以及使用注意事项 水墨不写bug 文章目录 一、基本数据类型1、字段2、字段的修饰规则 二、自定义数据类型1、message类型2、enum类型3、Any类型4、oneof类型5、map类型 三、小工具1.hexdump2.decode 四、注意事项 一、基本数据类型 protobuf 支持多种基础…

模拟实现线程池(线程数目为定值)和定时器

前言 昨天学习关于定时器的相关知识。今天花时间去模拟实现了一个定时器&#xff0c;同时也去模拟实现了一个线程池(线程数目为定值)。我感觉我收获了很多&#xff0c;对于线程的理解加深了。跟大家分享一下~ 线程池和定时器(这个是主要)的实现 代码 线程池 import java.ut…

数据结构之队列实验

引言 在计算机科学中&#xff0c;进制转换是基础但重要的操作。例如将一个十进制数转换为二进制或八进制表示时&#xff0c;我们通常使用“短除法”——即不断用目标进制去除当前数&#xff0c;记录余数&#xff0c;直到商为0为止。 这种方法得到的是低位先产生的结果&#x…

【Ubuntu】摸鱼技巧之虚拟机环境复制

前言 提示&#xff1a;所有的操作都需要关闭虚拟机 如何快速在其它电脑布置&#xff0c;linux环境&#xff0c;如果我们有一个环境直接拷贝就有时间摸鱼呀。 1.直接复制简单粗暴 不做赘述&#xff0c;如果不会复制&#xff0c;那么请右击鼠标压缩复制 2.克隆虚拟机 2.1 …

室内VR全景助力房产营销及装修

在当今的地产行业&#xff0c;VR全景已成为不可或缺的应用工具。从地产直播到楼市VR地图&#xff0c;从效果图到水电家装施工记录&#xff0c;整个地产行业的上下游生态中&#xff0c;云VR全景的身影无处不在。本文将探讨VR全景在房产营销及装修领域的应用&#xff0c;并介绍众…

jenkins集成gitlab实现自动构建

jenkins集成gitlab实现自动构建 前面我们已经部署了Jenkins和gitlab&#xff0c;本文介绍将二者结合使用 项目源码上传至gitee提供公网访问&#xff1a;https://gitee.com/ye-xiao-tian/my-webapp 1、创建一个群组和项目 2、添加ssh密钥 #生成密钥 [rootgitlab ~]# ssh-keyge…

Spring Boot微服务架构(八):开发之初就引入APM工具监控

使用 APM&#xff08;Application Performance Management&#xff09;工具监控 Spring Boot 应用&#xff0c;可以帮助开发者实时追踪性能瓶颈、分析调用链路、监控资源使用情况&#xff0c;并快速定位故障。以下是详细的步骤和常用工具的选择指南&#xff1a; ​​一、常用 A…

大规模真实场景 WiFi 感知基准数据集

一段话总结 本文提出CSI-Bench,首个大规模真实场景WiFi感知基准数据集,覆盖26个室内环境、35名用户、16种商用设备,包含461小时有效数据,支持跌倒检测、呼吸监测、定位、运动源识别等单任务及用户身份、活动、 proximity联合标注的多任务学习。通过标准化评估协议和基线模…

Python实现HPSO-TVAC优化算法优化支持向量机SVC分类模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在当今数据驱动的时代&#xff0c;支持向量机&#xff08;SVM&#xff09;作为一种经典的机器学习算法&#xff0c;…

ck-editor5的研究 (3):初步使用 CKEditor5 的事件系统和API

前言 在上一篇文章中—— ck-editor5的研究&#xff08;2&#xff09;&#xff1a;对 CKEditor5 进行设计&#xff0c;并封装成一个可用的 vue 组件 &#xff0c;我已经把 CKEditor5 封装成了一个通用vue组件&#xff0c;并且成功在nuxt中运行&#xff0c;并具备一定的通用性&…

WPS快速排版

论文包括&#xff08;按顺序&#xff09;&#xff1a;封面&#xff08;含题目&#xff09;、摘 要、关键词、Abstract&#xff08;英文摘要&#xff09;、Keywords、目录、正文、参考文献、在读期间发表的学术论文及研究成果&#xff0c;致 谢 题目&#xff08;黑小一加粗&…

Java实现命令行图书管理系统(附完整源码)

一、项目概述 本文将介绍如何使用Java实现一个基于命令行的图书管理系统。系统支持管理员和普通用户两种角色&#xff0c;提供图书的增删改查、借阅归还等功能。项目采用面向对象设计原则&#xff0c;代码结构清晰&#xff0c;适合Java初学者学习。 二、系统功能架构 graph T…

【数据结构】顺序表和链表详解(上)

前言&#xff1a;上期我们介绍了算法的复杂度&#xff0c;知道的算法的重要性同时也了解到了评判一个算法的好与坏就去看他的复杂度(主要看时间复杂度)&#xff0c;这一期我们就从顺序表和链表开始讲起。 文章目录 一&#xff0c;顺序表1&#xff0c;线性表2&#xff0c;顺序表…

唯创WT2606B TFT显示灵动方案,重构电子锁人机互动界面,赋能智能门锁全场景交互!

在智能家居的浪潮中&#xff0c;门锁搭载显示屏已成为行业创新的焦点。据行业数据显示&#xff0c;2023年全球智能门锁出货量中&#xff0c;搭载显示屏的型号占比已突破40%&#xff0c;且年复合增长率达25%。而2024年国内智能门锁销量突破2200万套&#xff0c;预计2025年市场规…

智能穿戴新标杆:SD NAND (贴片式SD卡)与 SOC 如何定义 AI 眼镜未来技术路径

目录 一、SD NAND&#xff1a;智能眼镜的“记忆中枢”突破空间限制的存储革命性能与可靠性的双重保障 二、SOC芯片&#xff1a;AI眼镜的“智慧大脑”从性能到能效的全面跃升多模态交互的底层支撑 三、SD NANDSOC&#xff1a;11&#xff1e;2的协同效应数据流水线的高效协同端侧…

node_modules包下载不下来

如果项目里面的package-lock.json有resolved &#xff0c;就指向了包的下载来源&#xff0c;如果这个网址挂了&#xff0c;那npm i 就会一直卡着。而且&#xff0c;在终端去修改 npm的镜像是没有用的 解决办法是:把项目里面的 lock文件 .npmrc都删了 然后重新下载就可以了

yolo个人深入理解

卷积层的理解,通过云端服务器训练模型,模型构建的重要性,针对极低像素的处理,模型训练召回率提高技巧,卷积层2,4,8,16,32的小模型与大模型的理解 一.关于backbone,neck,head深入理解 1,backbone的主要组成部分是sppf和conv,这是backbone的核心,其中yolov5和yolov8…

从0开始学vue:Element Plus详解

一、核心架构解析二、技术实现指南三、高级特性实现四、性能优化方案五、生态扩展方案六、调试与测试七、版本演进路线 Element Plus 是专为 Vue 3 设计的桌面端 UI 组件库&#xff0c;基于 Vue 3 的 Composition API 重构&#xff0c;在保持与 Element UI 兼容性的同时&#x…