🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍
文章目录
1.0 JS - JSON
2.0 JS - BOM
2.1 Window 浏览器窗口对象
2.2 Location 地址栏对象
3.0 JS - DOM
3.1 获取 HTML 元素对象
3.2 调用 Element 对象的属性、方法
4.0 事件
4.1 事件监听
4.2 事件绑定
4.3 常见事件监听器
1.0 JS - JSON
JavaScript 自定义对象
1)定义格式:
var 对象名 = {属性名1:属性值1,属性名2:属性值2,属性名3:属性值3,函数名称:function(形参列表){} };
2)调用格式:
对象名.属性名;
对象名.函数名(形参列表);
代码如下:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><script>//自定义对象var functionName = {id:1,name:'张三',get:function(){alert('hello');}} document.write(functionName.id);functionName.get();</script> </body> </html>
运行结果为:
3)JSON 介绍
JSON 是通过 JavaScript 的对象标记法书写的文本。是一种轻量级的数据交换格式,常用于前端与后端之间的数据传输。JSON 基于 JavaScript 的语法,但独立于编程语言,因此可以被多种编程语言解析和生成。
简单来说,JSON 可以被看作一种数据载体,键值对的形式存在,用于在不同系统之间传输和交换数据。JSON 本身并不具备逻辑处理能力,而是一种用于表示结构化数据的格式。通过 JSON,可以将数据序列化成字符串形式,并在不同系统之间进行传输和解析。
JSON 语法结构:
<script>var n = '{"key":value}';</script>
具体例子:
<script>var json = '{"name":"张三","age":18,"addr":["北京","上海","广州"]}';</script>
需要注意的是,整体 {} 需要单引号,且每一个键 key 都需要用双引号。
JSON 字符串转为 JS 对象:
格式:
var obj = JSON.parse(json);
具体例子:
<script>var json = '{"name":"张三","age":18,"addr":["北京","上海","广州"]}';var obj = JSON.parse(json);alert(obj.age);</script>
运行结果为:
JS 对象转为 JSON 字符串:
格式:
var str = JSON.stringify(obj);
具体代码如下:
<script>//定义 JSON 字符串var json = '{"name":"张三","age":18,"addr":["北京","上海","广州"]}';//转为 JSON 对象var obj = JSON.parse(json);alert(obj.age);//转为 JSON 字符串var str = JSON.stringify(obj);alert(str);</script>
运行结果为:
2.0 JS - BOM
Browser Object Model 浏览器对象模型,允许 JavaScript 与浏览器对话,JavaScript 将浏览器的各个组成部分封装为对象。
组成:Window 浏览器窗口对象、Navigator 浏览器对象、Screen 屏幕对象、History 历史记录对象、Location 地址栏对象。
2.1 Window 浏览器窗口对象
获取:直接使用 window,其中 window 可以省略。
例如,window.alert("Hello window") 的效果等同于 alter("Hello window") 。
对象中的方法:
alert():显示带有一段消息和一个确认按钮的警告框。
confirm():显示带有一段消息以及确认按钮和取消按钮的对话框。
例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><script>confirm('你有好好学习吗?');</script> </body> </html>
运行结果为:
setinterval():按照指定的周期(以毫秒计)来调用函数或计算表达式。
例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><script>var i = 0;setInterval(() => {i++;console.log('执行第'+i+'次');}, 3000);</script> </body> </html>
每隔 3 秒就会自动执行,一直持续下去。
运行结果为:
setTimeout():在指定的毫秒数后调用函数或计算表达式。
例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><script>var i = 0;setTimeout(() => {i++;console.log('执行第'+i+'次');}, 3000);</script> </body> </html>
隔 3 秒只执行一次。
运行结果为:
2.2 Location 地址栏对象
获取:使用 window.location 获取,其中 window. 可以省略。
属性:
href:设置或返回完整的 URL 。
获得当前地址:
<script>alert(location.href);</script>
运行结果为:
跳转到指定地址:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><script>setTimeout(() => {window.location.href='https://www.baidu.com/?tn=02003390_97_hao_pg';}, 3000);</script> </body> </html>
运行结果为:
3.0 JS - DOM
DOM(Document Object Model),文档对象模型。将标记语言的各个组成部分封装为对应的对象:
Document:整个文档对象。一个整体对象。
Element:元素对象。实际就是标签对象。
Attribute:属性对象。标签中的属性对象。
Text:文本对象。实际上就是文本内容。
Comment:注释对象。
JavaScript 通过 DOM ,就能够对 HTML 进行操作:
1)改变 HTML 元素的内容
2)改变 HTML 元素的样式
3)对 HTML DOM 事件作出反应
4)添加、删除 HTML 元素
3.1 获取 HTML 元素对象
依据 Core DOM - 所有文档类型的标准模型下,HTML DOM - HTML 文档的标准模型将每一个元素都单独封装成一个个对象,比如:将 <img> 标签封装成 Image 对象;将 <input type='button'> 元素封装成一个 Button 对象。
那么如何获取 HTML 中的标签对象?
可以通过 Document 对象来获取 Element 中的对象,而 Document 对象可以通过 window 来获取,而一般都会将 Window 省略。
获取 Element 对象的方法一:
通过 id 属性值来获取唯一的一个对象。
var id_obj = document.getElementById('id名称');
获取 Element 对象的方法二:
通过标签名来获取对象数组。
var objs = document.getElementsByTagName('标签名');
获取 Element 对象的方法三:
通过属性名 name 的属性值来获取对象数组。
var objs = document.getElementsByName('name属性值');
获取 Element 对象的方法四:
通过 Class 属性值来获取对象数组。
var objs = document.getElementsByClassName('Class属性值');
举个例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><img id="img1" src="https://img-blog.csdnimg.cn/direct/a0b8ebee39e54eb39f8f719e0949e6c5.jpeg" height="300px"><div class="cls">新浪新闻</div><div class="cls">腾讯视频</div><input type="checkbox" name="hobby" value=1 >打游戏<input type="checkbox" name="hobby" value=2>看书<input type="checkbox" name="hobby" value=3>睡觉<script>/* 通过id属性值来获取对象 */var id_obj = document.getElementById('img1');/* 通过标签名来获取对象数组 */var objs1 = document.getElementsByTagName('div');/* 通过name的属性值来获取对象数组 */var objs2 = document.getElementsByName('hobby');/* 通过Class属性值来获取对象数组 */var objs3 = document.getElementsByClassName('cls');</script> </body> </html>
3.2 调用 Element 对象的属性、方法
可以通过 JavaScript 和 HTML DOM 参考手册 (w3school.com.cn) 来查询相对应的属性、方法。
展示出来的只是一小部分。在里面有很多封装了 Element 对象,包含了很多很多属性、方法。可以参考这个手册来找到自己适合的方法。
举个例子:
比如修改 <div> 中的文本内容,可以找到 <div> 这个对象,从而找到设置、修改文本内容的属性或者方法。
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><img id="img1" src="https://img-blog.csdnimg.cn/direct/a0b8ebee39e54eb39f8f719e0949e6c5.jpeg" height="300px"><div class="cls">新浪新闻</div><div class="cls">腾讯视频</div><input type="checkbox" name="hobby" value=1 >打游戏<input type="checkbox" name="hobby" value=2>看书<input type="checkbox" name="hobby" value=3>睡觉<script>/* 通过id属性值来获取对象 */var id_obj = document.getElementById('img1');/* 通过标签名来获取对象数组 */var objs1 = document.getElementsByTagName('div');var obj_div0 = objs1[0];obj_div0.innerHTML = '博客';/* 通过name的属性值来获取对象数组 */var objs2 = document.getElementsByName('hobby');/* 通过Class属性值来获取对象数组 */var objs3 = document.getElementsByClassName('cls');</script> </body> </html>
4.0 事件
在 Web 开发中,事件(Event)是指可以触发特定行为或动作的信号或通知。事件可以是用户操作(如点击、鼠标移动)或系统操作(如页面加载完成、键盘按下)等,通过事件可以触发相应的事件处理程序(Event Handler)来执行特定的操作。
简单来说,HTML 事件就是发生在 HTML 元素上的“事情”。
4.1 事件监听
JavaScript 可以在事件被侦测到时执行代码。是一种常见的编程模式,用于在 Web 开发中处理各种事件。通过事件监听,开发人员可以指定当特定事件发生时执行特定的操作或逻辑。直接在 HTML 元素中使用事件属性来添加事件监听器,如 onclick、onmouseover 等。
举个例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><input type="button" onclick="on()" value="按钮"> </body> </html>
事件就是:按一下按钮这个操作。而事件监听就是:接收按按钮的事件之后做出一些反馈。
4.2 事件绑定
事件绑定是将事件与相应的事件监听器(或处理函数)关联起来的过程。当事件发生时,绑定的事件监听器会被触发执行。
事件绑定方式:
1)通过 HTML 标签中的事件属性进行绑定
举个例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><input type="button" onclick="on()" value="按钮"> </body> <script>function on(){alert('按了一下按钮');} </script> </html>
当事件 "按钮按了一下" 发生后,被事件监听 "onclick "监听到了,从而做出了弹出警告框这个反馈动作。
这种操作是直接在标签属性上直接绑定的。
2)通过 DOM 元素属性绑定
先获取 Element 对象,再进行与监听器进行绑定。
举个例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><!-- 绑定方式一: --><input type="button" onclick="on()" value="按钮"><input id="id1" type="button" value="按钮" > </body> <script>function on(){alert('按了一下按钮');}<!-- 绑定方式二: -->var id_obj = document.getElementById('id1');id_obj.onclick=function(){alert('按了一下按钮');} </script> </html>
4.3 常见事件监听器
举个例子:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head> <body><!-- 绑定方式一: --><input type="button" onclick="on()" value="按钮"><input id="id1" type="button" value="按钮" onblur="blur" onfocus="focus"><input type="text" name="username" onblur="blur1()" onfocus="focus1()" onkeydown="key()"> </body> <script>function on(){alert('按了一下按钮');}<!-- 绑定方式二: -->var id_obj = document.getElementById('id1');id_obj.onclick=function(){alert('按了一下按钮');}function blur1(){console.log('失去焦点');}function focus1(){console.log('获取焦点');}function mouse(){console.log('移到指定位置');}function mouseover(){console.log('移开指定位置');}function key(){console.log('正在输入');} </script> </html>
以上都是用到了标签属性事件直接绑定。