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

前面学习了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.pswp.cn/pingmian/83318.shtml

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

相关文章

完全移除内联脚本

说明 日期&#xff1a;2025年5月9日。 内联脚本给跨站脚本攻击&#xff08;XSS&#xff09;留了条路。 示例 日期&#xff1a;2025年5月9日。 如下网页文件a.html&#xff1a; <!-- 内联脚本块 --> <script> function handleClick{ alert("Hello")…

[蓝桥杯]约瑟夫环

约瑟夫环 题目描述 nn 个人的编号是 1 ~ nn&#xff0c;如果他们依编号按顺时针排成一个圆圈&#xff0c;从编号是 1 的人开始顺时针报数。 &#xff08;报数是从 1 报起&#xff09;当报到 kk 的时候&#xff0c;这个人就退出游戏圈。下一个人重新从 1 开始报数。 求最后剩…

电子电气架构 --- 如何应对未来区域式电子电气(E/E)架构的挑战?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

isp中的 ISO代表什么意思

isp中的 ISO代表什么意思 在摄影和图像信号处理&#xff08;ISP&#xff0c;Image Signal Processor&#xff09;领域&#xff0c;ISO是一个用于衡量相机图像传感器对光线敏感度的标准参数。它最初源于胶片摄影时代的 “国际标准化组织&#xff08;International Organization …

第十二节:第五部分:集合框架:Set集合的特点、底层原理、哈希表、去重复原理

Set系列集合特点 哈希值 HashSet集合的底层原理 HashSet集合去重复 代码 代码一&#xff1a;整体了解一下Set系列集合的特点 package com.itheima.day20_Collection_set;import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.…

迈向分布式智能:解析MCP到A2A的通信范式迁移

智能体与外部世界的桥梁之言&#xff1a; 在深入探讨智能体之间的协作机制之前&#xff0c;我们有必要先厘清一个更基础的问题&#xff1a;**单个智能体如何与外部世界建立连接&#xff1f;** 这就引出了我们此前介绍过的 **MCP&#xff08;Model Context Protocol&…

Android Studio 配置之gitignore

1.创建或编辑.gitignore文件 在项目根目录下检查是否已有.gitignore文件。如果没有&#xff0c;创建一个新文件&#xff0c;命名为.gitignore&#xff08;注意文件名前有个点&#xff09;。 添加忽略规则&#xff1a;在.gitignore中添加以下内容&#xff1a; 忽略整个 .idea …

算法:二分查找

1.二分查找 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 二分查找算法要确定“二段性”&#xff0c;时间复杂度为O(lonN)。为了防止数据溢出&#xff0c;所以求mid时要用防溢出的方式。 class Solution { public:int search(vector<int>& nums, int tar…

day62—DFS—太平洋大西洋水流问题(LeetCode-417)

题目描述 有一个 m n 的矩形岛屿&#xff0c;与 太平洋 和 大西洋 相邻。 “太平洋” 处于大陆的左边界和上边界&#xff0c;而 “大西洋” 处于大陆的右边界和下边界。 这个岛被分割成一个由若干方形单元格组成的网格。给定一个 m x n 的整数矩阵 heights &#xff0c; hei…

Langchaine4j 流式输出 (6)

Langchaine4j 流式输出 大模型的流式输出是指大模型在生成文本或其他类型的数据时&#xff0c;不是等到整个生成过程完成后再一次性 返回所有内容&#xff0c;而是生成一部分就立即发送一部分给用户或下游系统&#xff0c;以逐步、逐块的方式返回结果。 这样&#xff0c;用户…

自动驾驶与智能交通:构建未来出行的智能引擎

随着人工智能、物联网、5G和大数据等前沿技术的发展&#xff0c;自动驾驶汽车和智能交通系统正以前所未有的速度改变人类的出行方式。这一变革不仅是技术的融合创新&#xff0c;更是推动城市可持续发展的关键支撑。 一、自动驾驶与智能交通的定义 1. 自动驾驶&#xff08;Auto…

数据基座觉醒!大数据+AI如何重构企业智能决策金字塔(下)

1. 数据架构的量子跃迁 1.1 从线性堆叠到立体网络 传统六层架构正在经历基因重组。某智能家居企业将数据流转路径重构为三维拓扑网络后&#xff0c;新品研发周期从18个月压缩至9个月。这个改造的核心在于打破数据层间的物理隔离&#xff0c;让原始数据流能直接触达决策中枢。…

Linux 脚本文件编辑(vim)

1. 用户级配置文件&#xff08;~/.bashrc&#xff09; vim ~/.bashrc # 编辑 source ~/.bashrc # 让编辑生效 ~/.bashrc 文件是 Bash Shell 的配置文件&#xff0c;用于定义用户登录时的环境变量、别名、函数等设置。当你修改了 ~/.bashrc 文件后&#xff0c;通常需要重新…

【Pytorch学习笔记】模型模块06——hook函数

hook函数 什么是hook函数 hook函数相当于插件&#xff0c;可以实现一些额外的功能&#xff0c;而又不改变主体代码。就像是把额外的功能挂在主体代码上&#xff0c;所有叫hook&#xff08;钩子&#xff09;。下面介绍Pytorch中的几种主要hook函数。 torch.Tensor.register_h…

SQL进阶之旅 Day 11:复杂JOIN查询优化

【SQL进阶之旅 Day 11】复杂JOIN查询优化 在数据处理日益复杂的今天&#xff0c;JOIN操作作为SQL中最强大的功能之一&#xff0c;常常成为系统性能瓶颈。今天我们进入"SQL进阶之旅"系列的第11天&#xff0c;将深入探讨复杂JOIN查询的优化策略。通过本文学习&#xf…

Spring AI 之检索增强生成(Retrieval Augmented Generation)

检索增强生成&#xff08;RAG&#xff09;是一种技术&#xff0c;有助于克服大型语言模型在处理长篇内容、事实准确性和上下文感知方面的局限性。 Spring AI 通过提供模块化架构来支持 RAG&#xff0c;该架构允许自行构建自定义的 RAG 流程&#xff0c;或者使用 Advisor API 提…

前端开源JavaScrip库

以下内容仍在持续完善中&#xff0c;如有遗漏或需要补充之处&#xff0c;欢迎在评论区指出。感谢支持&#xff0c;如果觉得有帮助&#xff0c;欢迎点赞鼓励。感谢支持 JavaScript 框架Vue.jsVue.js - 渐进式 JavaScript 框架 | Vue.jsReactReactAngularHome • AngularjQueryj…

什么是 CPU 缓存模型?

导语&#xff1a; CPU 缓存模型是后端性能调优、并发编程乃至分布式系统设计中一个绕不开的核心概念。它不仅关系到指令执行效率&#xff0c;还影响锁机制、内存可见性等多个面试高频点。本文将以资深面试官视角&#xff0c;详解缓存模型的原理、常见面试题及实战落地&#xff…

海外tk抓包简单暴力方式

将地址替换下面代码就可以 function hook_dlopen(module_name, fun) {var android_dlopen_ext Module.findExportByName(null, "android_dlopen_ext");if (android_dlopen_ext) {Interceptor.attach(android_dlopen_ext, {onEnter: function (args) {var pathptr …

多模态大语言模型arxiv论文略读(103)

Are Bigger Encoders Always Better in Vision Large Models? ➡️ 论文标题&#xff1a;Are Bigger Encoders Always Better in Vision Large Models? ➡️ 论文作者&#xff1a;Bozhou Li, Hao Liang, Zimo Meng, Wentao Zhang ➡️ 研究机构: 北京大学 ➡️ 问题背景&…