day53 鼠标事件 键盘事件 及JQuery
复习
// 语法: ECMAScript 操作: DOM BOM
// 1.类型转化
// 转数字: +"3.14" | parseInt("123abc") | parseFloat("3.14.15") | Number()
// 转字符串: "" + 3.14 | 3.14.toString() | 3..toString() | String()
// 转布尔: Boolean()
// 2.运算符
// ++ --: 在前 a = ++num => num先自增1,再赋值给a | 在后 a = num++ => 先将num值赋值给a, 再自增1
// / 结果就是正常运算的数字结果
// * % n  取值范围 [0, n-1]
// == 只做值匹配  ===  值与类型都需要匹配
// 三目运算符: var maxNum = a > b ? a : b;
// 逻辑运算符: &&  ||  !
// 3.基础语法
// 流程控制: if分支 | for循环 | while循环 | do...while循环
// if (条件1) {代码块1} else if (条件2) {代码块2} ... else if(条件n) {代码n} else {代码块}
// for(var i = 0; i < 10; i++){ 代码块 }
// while(条件判断) { 代码块 }
// do { 代码块 } while(条件判断)
// 4.函数
// 定义: function 函数名(形参列表) { 代码块 }
// 调用: var res = 函数名(实参列表);
// 参数: 实参与形参只需要位置匹配,不需要个数匹配, 参数可以拥有默认值
// (形参有2个,实参有1个=>第二个形参没有被传值,值就是undefined)
// (形参有2个,实参有3个=>第三个实参没有对应的形参接收,实参值被丢弃)
// 返回值: 一个函数只能有一个返回值(多个返回值用数组与字典(对象)来处理), 可以空return来结束函数,也可以省略return
循环绑定 => 变量污染
// 页面有一个ul下4个li
// lis.length = 4
for (var i = 0; i < lis.length; i++) {
    // 给页面元素对象添加一个任意属性(保留索引的属性index)
    lis[i].index = i
    // 循环绑定时. i分别是0,1,2,3, 也就给每一个li进行了点击事件的绑定
    lis[i].onclick = function () {
        // 在事件绑定时,没有执行事件内部的逻辑体, 在绑定结束后, 激活事件时, 才会执行
        // 循环结束后, i值定格在4, 索引在激活事件执行功能时,拿到的i的值全部是4
        // 需求1: 打印li的索引
        // console.log(i)
        // 解决:每一个li都有index属性,取出自己(this)的索引
        console.log(this.index)
        // 需求2: 打印自身内容
        // console.log(lis[i].innerText)
        // 解决: this就能唯一指向当前激活事件的那个li对象
        console.log(this.innerText)
    }
}
对象(字典)的增删改查
// 作为字典来使用  *****
var dict = {
    a: "AAA",
    b: "BBB"
}
// 查
console.log(dict.a);
// 改
dict.a = "AAAAA";
console.log(dict);
// 增
dict.c = "CCC";
console.log(dict);
// 删
delete dict.b;
console.log(dict);
// 总结: 只要是js对象, 就可以随意添加属性
随机数
// 得到区间[min, max]之间的正整数
function randomNum(min, max) {
 	return parseInt(Math.random() * (max - min + 1)) + min;
}
字符串操作
// 1.指定索引下的字符
var s = "abcdef123456呵呵哈哈";
console.log(s.charAt(3));
// 2.判断是否存在: 呵呵是否在字符串中
// -1代表不存在, 反正就是存在(的索引)
console.log(s.indexOf("呵"));  // 12
console.log(s.lastIndexOf("呵")); // 13
// 3.替换
var newS = s.replace("abc", "ABC");
console.log(s);
console.log(newS);
// 总结: 字符串为不可变类型, 如果某操作要改变字符串, 该操作一定拥有返回值
// 4.裁剪 slice(n, m) 从索引n开始截取到索引m之前
newS = s.slice(0, 3);
console.log(newS);
// 5.拆分数组
var ss = "123 456 abc def";
var arr = ss.split(" ");
console.log(arr)
数组操作
var arr = [3, 5, 1, 2, 4];
console.log(arr); // [3, 5, 1, 2, 4]
// 1.反转
arr.reverse();
console.log(arr); // [4, 2, 1, 5, 3]
// 2.排序
arr.sort();
console.log(arr); // [1, 2, 3, 4, 5]
console.log(arr.reverse()); // [5, 4, 3, 2, 1]
// 3.判断元素是否存在 (不等于-1就是存在)
console.log(arr.indexOf(5));
// 4.拼接成字符串
var ss = arr.join("@");
console.log(ss);  // 5@4@3@2@1
// 5.过滤器 (保留符合条件的结果)
var newArr = arr.filter(function (ele) {  // 回调函数的回调次数有数组的个数决定
    // filter回调了三个参数: ele, index, sourcerr
    // 偶数
    if (ele % 2 == 0) {
        // 满足过滤条件
        return true;
    }
    // 不满足过滤条件
    return false;
});
// 满足过滤条件的就会添加到新数组中保留
console.log(newArr) // [4, 2]
/*原理
arr.filter(fn) {
    var newArr = [];
    for (var i = 0; i < this.length; i++) {
        var res = fn(this[i], i, this);
        if (res == true) {
            newArr.push(res)
        }
    }
    return newArr;
}
*/
```
```js
// 查
// arr[index]
// 改
// arr[index] = newDate;
// 增
// 从尾加: push()
// 从头加: unshift()
// 删
// pop():从尾删
// shift():从头删
// splice(begin, length, ...eles);
// begin开始的索引
// length操作的长度
// 替换为的新元素们(可以省略)
// 增
// 从索引3之前操作0位,替换为10 => 在索引3插入10
a.splice(3, 0, 10); // [4, 3, 5, 10, 1, 2]
console.log(a);
// 在索引0之前操作0位,替换为1,2 => 在首位添加1和2
a.splice(0, 0, 1, 2);
console.log(a); // [1, 2, 4, 3, 5, 10, 1, 2]
// 改
// 在索引末尾之前操作1位,替换为20 => 在末位修改为20
a.splice(a.length - 1, 1, 20);  // [1, 2, 4, 3, 5, 10, 1, 20]
console.log(a); // [1, 2, 4, 3, 5, 10, 1, 20]
// 删
a.splice(2, 3);
console.log(a); // [1, 2, 10, 1, 20]
鼠标事件
var box = document.querySelector('.box');
// 悬浮
box.onmouseenter = function () {
    box.style.cursor = "pointer";
    console.log("鼠标悬浮了")
}
// 移动
box.onmousemove = function () {
    console.log("鼠标在移动")
}
// 按下
box.onmousedown = function () {
    console.log("鼠标按下")
}
// 抬起
box.onmouseup = function () {
    console.log("鼠标抬起")
}
// 移开
box.onmouseleave = function () {
    console.log("鼠标移开")
}
// 右键: 右键按下抬起为一次右键
box.oncontextmenu = function (ev) {
    console.log("鼠标右键")
}
// 点击点的x坐标: ev.clientX | 点击点的y坐标: ev.clientY
键盘事件
// 具体按下的是那个按键
document.onkeydown = function () {
    // console.log("键盘按下了")
}
// ev: 系统回调事件函数,传递的事件对象
// 键盘事件中,ev中有keyCode来唯一标识具体的按键
// 通过ctrlKey | shiftKey | altKey 来标签特殊按键是否为按下状态
document.onkeyup = function (ev) {
    console.log(ev);
    console.log(ev.keyCode, ev.altKey);
    console.log("键盘抬起了")
}
定时器
// 一次性定时器:
// 1.r1是定时器返回值, 就是定时器创建先后的数字编号
// 2.只在创建定时器1s后执行1次
var r1 = setTimeout(function () {
    console.log("一次性定时器响了!1111");
}, 1000);
// 持续性定时器:
// 1.r2是定时器返回值, 就是定时器创建先后的数字编号
// 2.第一次触发在1s后,然后每1s触发一次
var num = 0;
var r2 = setInterval(function () {
    console.log("持续性性定时器响了%d次!", ++num);
}, 1000);
// 清除一个定时器
// 1.通过定时器数字编号来清除
// 2.清除定时器不分种类可以混用
clearTimeout(r1)  == clearInterval(1)
// 清除页面所有定时器
var n = setTimeout(function () {}, 1); // n一定大于之前所有的定时器编号
for (var i = 0; i < n; i++)  { // 将1~n之间所有定时器再清一遍
    clearTimeout(i)
}
jq导入
// 什么是jQuery
// jQuery是一个简洁高效的且功能丰富的JavaScript工具库,是对原生JavaScript二次封装的工具函数集合
// 优点
// 开源 | 简洁的选择器 | 简化的Ajax操作 | 良好的浏览器兼容 | 强大的链式操作												
											day53 鼠标事件 键盘事件 及JQuery的更多相关文章
- C#/winform 自动触发鼠标、键盘事件
		
要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// ...
 - Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)
		
本文将总结 Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍 WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展.举例说明 ...
 - java鼠标与键盘事件监听
		
package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...
 - HTML5 Canvas鼠标与键盘事件
		
演示HTML5 Canvas鼠标事件,获取Canvas对象上的鼠标坐标,演示键盘事件 通过键盘控制Canvas上对象移动. Canvas对象支持所有的JavaScript的鼠标事件,包括鼠标点击(Mo ...
 - lufylegend库 鼠标事件 循环事件 键盘事件
		
lufylegend库 鼠标事件 循环事件 键盘事件 <!DOCTYPE html> <html lang="en"> <head> <m ...
 - OSX 鼠标和键盘事件
		
本文转自:http://www.macdev.io/ebook/event.html 事件分发过程 OSX 与用户交互的主要外设是鼠标,键盘.鼠标键盘的活动会产生底层系统事件.这个事件首先传递到IOK ...
 - tkinter中鼠标与键盘事件(十五)
		
鼠标与键盘事件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("300x200+ ...
 - 50-用Python监听鼠标和键盘事件
		
转自:https://www.cnblogs.com/qiernonstop/p/3654021.html 用Python监听鼠标和键盘事件 PyHook是一个基于Python的“钩子”库,主要用于监 ...
 - JavaScript事件基础-10-2.HTML事件;  DOM0级事件;  掌握常用的鼠标与键盘事件 ;   掌握this的指向;
		
JavaScript事件基础 学习目标 1.掌握什么是事件 2.掌握HTML事件 3.掌握DOM0级事件 4.掌握常用的鼠标与键盘事件 5.掌握this的指向 什么是事件 事件就是文档或浏览器窗口中发 ...
 - C# 自动触发鼠标、键盘事件
		
要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// ...
 
随机推荐
- vim的基础操作
			
 - Zookeeper并不保证读取的是最新数据
			
Zookeeper并不保证读取的是最新数据 原文地址:http://www.crazyant.net/2120.html 如果是对zk进行读取操作,读取到的数据可能是过期的旧数据,不是最新的数据. 已 ...
 - python with as的用法
			
With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作.对于这种场景,Python的with语句提供了一种非常方便的处理方式.一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取 ...
 - MySQL binlog2sql-闪回数据
			
binlog2sql 从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途 数据快速回滚(闪回) 主从切换后新mast ...
 - Pandas之Dataframe叠加,排序,统计,重新设置索引
			
Pandas之Dataframe索引,排序,统计,重新设置索引 一:叠加 import pandas as pd a_list = [df1,df2,df3] add_data = pd.concat ...
 - 三个线程,ABC 10次(volatile+synchronized(2 synchronized可以保证内存可见性,所以去掉status 的volatile修饰符)
			
package ThreadABC; public class MyThread extends Thread { public static int status = 0; @Override pu ...
 - 有什么学习MySQL的好教程吗?
			
有什么学习Mysql的好教程吗? 文档是最好的,现整理如下: [mysql教程]MySQL 教程 [MySQL教程]MySQL 安装 [MySQL教程]MySQL 管理 [MySQL教程]MySQ ...
 - Linux系统中的计划任务
			
在系统的工作管理中,我们经常会有需要去告诉电脑某些特定的时间执行一些操作,比如定时提醒工作人员需要做什么事情,或者在每天凌晨进行文件备份等等.这就需要某些命令来达成计划任务. 计划任务可以大体上分成两 ...
 - 三、CSS样式——字体
			
概念: CSS字体属性定义文本的字体系列.大小.加粗.风格和变形. 属性 描述 font-family 设置字体系列 font-size 设置字体的大小 font-style 设置字体的风格 font ...
 - 2018-2019-2 20165205 Exp2 后门原理与实践
			
20165205 Exp2 后门原理与实践 实验内容 一.基础问题回答 列举你能想到的一个后门进入到你系统中的可能方式 下载盗版软件.操作系统 当然正版软件里可能也有编写者安装的后门 不在官方更新软件 ...