JavaScript 基础03-对象数组事件
1.JS 数组
声明数组
- 1 使用 Array() 构造函数方式
- var list = new Array(); // 空数组
- var list = new Array(length); // 定义数组 初始长度
- var list = new Array(v1,v2,v3); // 指定初始值
- 2 JSON 方式
- var list = []; // 空数组
- var list = [v1,v2,v3]; // 指定初始值
数组特点
- 不能使用
[]的形式去追加数组元素,想要追加的请使用 push() - JS数组的下标是连续的, 跳跃着赋值数组元素的话,中间的元素会自动赋值为undefined
- JS 只有索引数组,没有关联数组
遍历
- for 适合遍历从页面中获取到的元素集合对象
- for-in 适合遍历对象
数组 属性
见手册
数组 方法
- 不改变原数组的方法:
- concat()
- join()
- slice()
- 改变原数组的方法:
- reverse()
- push()
- pop()
- unshift()
- shift()
- sort()
2.JavaScript 的内置对象
Boolean
Boolean 对象的声明
- 直接赋值
- 转换函数
- 构造函数
Number
Number 对象的声明
- 直接赋值
- 转换函数
- 构造函数
Number的属性
Number的方法
String
String 对象的声明
- 直接赋值
- 转换函数
- 构造函数
String 的属性
String 的方法
RegExp
RegExp 对象的声明
- 直接赋值
- RegExp 构造函数
RegExp的方法
RegExp 示例
Date
获取 date 对象
获取 date 中的信息
设置 date
Math
Math 的属性
Math 的方法
Array
已学习
3.JavaScript 事件
1. 事件的绑定
- 事件作为 元素的属性
1 | <tagName event="JS code..."></tagName> |
- 事件作为 元素对象的属性
1 | element.onclick = function(){} |
- 事件监听(标准)
1 | 非IE: element.addEventListener('event', funName, false); |
2. 解除绑定
- 第1种和第2种的绑定方式
1 | element.event = function(){} |
- 监听方式
1 | 非IE: element.removeEventListener('event', funName, false); |
3. 给一组元素绑定事件和this的使用
- 循环绑定事件,获取触发事件的元素对象时,需要使用 this
- 元素内部绑定事件时 传入this, 表示该元素对象自己
4. 闭包 closure
- 在循环绑定事件时,将循环变量保留下来时,就需要使用闭包
- 用一组元素 去控制另一组元素时,建议使用闭包
- 语法:
1 | for( ... ) { |
5. 常用事件
5.1 鼠标事件
- onclick 单击触发
- ondblclick 双击触发
- oncontextmenu 右击触发/return false阻止系统菜单
- onmouseover 鼠标指向触发
- onmouseout 鼠标移开触发
- onmousedown 鼠标按下触发
- onmouseup 鼠标松开触发
- onmousemove 鼠标移动触发
5.2 键盘事件
- onkeydown 按下按键触发
- onkeyup 松开按键触发
- onkeypress 按下并松开触发(JS高级事件)
不是所有的按键都能触发,无输出的按键 就不能触发 (方向键/shift/alt/ctrl/tab/大小写)
5.3 表单事件
- onsubmit 表单被提交时触发
- onreset 表单被重置时触发
- onfocus 获取焦点时触发
- onblur 失去焦点时触发
- onchange 改变表单控件的内容或状态时就触发
`用于input元素时,value值变化且失焦才触发` - oninput 非IE: 输入时输入时(input/textarea)
- onpropertychange IE: 输入时输入时(input/textarea)
- onselect 选中时触发
5.4 框架/对象事件
- onload 文档加载完触发/图片加载完触发
- onunload 文档关闭时触发 IE
- onbeforeunload 文档关闭时触发 非IE
浏览器阻止了关闭前的弹框 需要return "string..." - onabort 图片加载过程中中断触发
- onerror 图片加载错误触发
- onresize 窗口/框架大小变化时触发
- onscroll 元素滚动条在滚动时触发
5.5 其他事件
- oncopy 拷贝内容时触发
- oncut 剪切内容时触发
- onpaste 粘贴内容时触发
- onplay 音/视频开始播放时触发(audio/video)
- onpause 音/视频暂停时触发(audio/video)
- onended 音/视频播放结束时触发(audio/video)
// Chrome 73+ 自动处理 play 状态
// https://www.tuicool.com/articles/J363M3v
6. Event 事件对象
6.1 获取
事件内部 传入 en 获取使用var en = en || window.event;
6.2 属性
1 | en.x/en.clientX 鼠标的x坐标 |
7. 常用HTML元素属性
1 | innerHTML 双标签之间的文本 |
PS.补充
JS 中的随机数的产生.
Math.random() 函数 返回 0 和 1 之间的伪随机数
可能为 0, 但总是小于 1
1 | // 生成 min-max,包含 min 但不包含 max 的整数: |
特效-下载进度条
1 | <body> |
特效-图层拖拽
1 | <head> |
特效-地址联动
1 | <h1>JS onchange 地址联动实例</h1> |
特效-resize事件
1 | <h1>JS onresize 事件</h1> |