4、返回对文档中所有Form对象引用
document.forms
5、返回对文档中所有Image对象引用
document.images
=====================================================================
事件三要素是指事件源、事件类型和事件处理程序这3部分。
事件源
:触发事件的元素(谁触发了事件)
事件类型
:如click
单击事件(触发了什么事件)
事件处理程序
:事件触发后要执行的代码(函数形式),也称事件处理函数(触发事件以后要做什么)
做一个“点击按钮弹出警示框”的案例。如下所示:
点击
运行结果如下:
1.获取事件源
2. 注册事件(绑定事件)
3. 添加事件处理程序(采取函数赋值形式)
如上例所示,就是一个采用了该步骤的事件。
| 鼠标事件 | 触发条件 |
| — | — |
| onclick | 鼠标点击左键触发 |
| onmouseover | 鼠标经过触发 |
| onmouseout | 鼠标离开触发 |
| onfocus | 获得鼠标焦点触发 |
| onblur | 失去鼠标焦点触发 |
| onmousemove | 鼠标移动触发 |
| onmouseup | 鼠标弹起触发 |
| onmousedown | 鼠标按下触发 |
======================================================================
JavaScript 的 DOM 操作可以改变网页内容、结构和样式,我们可以利用 DOM 操作元素来改变元素里面的内容 、属性等。
分别有如下几种方式:
//1.
element.innerHTML
设置或返回元素开始和结束标签之间HTML。包括HTML标签,同时保留空格和换行
//2.
element.innerText
设置或返回元素的文本内容,在返回的时候会去除HTML标签和多余的空格、换行,在设置的时候会进行特殊字符转义
//3.
element.textContent
设置或者返回指定节点的文本内容,同时保留空格和换行
例如:
分别利用innerHTML
、innerText
、textContent
属性在控制台输出一段HTML文本。
代码如下:
你好呀
你好,我是王欢。
打印结果为:
我们可以发现这三种方法打印的结果也是不同的。
innerHTML在使用时会保持编写的格式以及标签样式
innerText去掉所有格式以及标签的纯文本内容
textContent属性在去掉标签后会保留文本格式
在DOM中,HTML属性操作是指使用JavaScript来操作一个元素的HTML属性。一个元素包含很多的属性,例如,对于一个img
图片元素来说,可以操作它的src
、title
属性等,或者对于input
元素来说,可以操作它的disabled
、checked
、selected
属性等。
例如:通过修改图片的路径实现点击不同的按钮出现不同的图片的效果。
图1
图2
![wh](../11.20/images/1.png)
打印结果为:
我们可以通过 JS 修改元素的大小、颜色、位置等样式。
//1.行内样式操作
element.style
//2. 类名样式操作
element.className
需要注意的是:
- 如果样式修改较多,可以采取操作类名方式更改元素样式。
2.class
因为是个保留字,因此使用className
来操作元素类名属性
className
会直接更改元素的类名,会覆盖原先的类名。
1、获取属性值
element.属性
element.getAttribute(‘属性’);
区别:
element.属性
获取内置属性值(元素本身自带的属性)
element.getAttribute(‘属性’)
; 主要获得自定义的属性 (标准) 我们自定义的属性。
2、设置属性值
element.属性 = ‘值’ //设置内置属性值。
element.setAttribute(‘属性’, ‘值’);
区别:
element.属性
设置内置属性值
element.setAttribute(‘属性’)
; 主要设置自定义的属性 (标准)
3、 移除属性
element.removeAttribute(‘属性’);
自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。
自定义属性获取是通过getAttribute(‘属性’)
获取。
但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。
H5给我们新增了自定义属性:
1、 设置H5自定义属性
H5规定自定义属性data-
开头做为属性名并且赋值。
数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)
[外链图片转存中…(img-vrRvauU4-1719216362154)]