每周小记(3)

事件(上)


1 事件的组成:事件源+事件类型+事件处理函数

2 事件对象:window.event||e (e是事件处理函数的第一个形参)

3 鼠标坐标相关信息

  • offsetX/offsetY :鼠标相对被点击元素(自身区域内)的距离(有兼容性问题)(四舍五入)
  • pageX/pageY:鼠标相对页面的距离
  • clientX/clientY:鼠标相对浏览器可视区域的距离

4 键盘按键相关信息

  • 按键编码:e.keyCode||e.which
    • 常见按键和编码对应表
      13 Enter
      8 Backspace
      46 Delete
      32 空格
      27 Escape
      38 上箭头
  • 按键名称:e.key
  • 组合按键:shiftKey/ctrlKey/altKey
    ==> 事件对象.shiftKey:如果为true,说明shift被同时按下
    ==> 事件对象.altKey:如果为true,说明alt被同时按下
    ==> 事件对象.ctrlKey:如果为true,说明ctrl被同时按下

5 鼠标按键相关信息

  • e.button: 左键0,中间1,右键2

  • 浏览器事件
    load:浏览器资源加载完毕
    scroll:浏览器滚动
    resize:窗口大小变化
    online:浏览器已获得网络访问
    offline:浏览器已失去网络访问

  • 鼠标事件
    click 在元素上按下并释放任意鼠标按键。
    contextmenu 右键点击(在右键菜单显示前触发)。
    dblclick 在元素上双击鼠标按钮。
    mousedown 在元素上按下任意鼠标按钮。
    mouseenter 鼠标移到有事件监听的元素内。
    mouseleave 鼠标移出元素范围外。
    mousemove 鼠标在元素内移动时持续触发。
    mouseover 鼠标移到有事件监听的元素或者它的子元素内。
    mouseout 鼠标移出元素,或者移到它的子元素上。
    mouseup 在元素上释放任意鼠标按键。

  • 键盘事件
    keyup 键盘抬起事件
    keydown 键盘按下事件

  • 表单事件
    change 表单内容改变事件
    input 表单内容输入事件
    submit 表单提交事件
    blur 失去焦点事件
    focus 获取焦点事件

  • 触摸事件
    touchstart 触摸开始事件
    touchmove 触摸移动事件
    touchend 触摸结束事件

6 事件绑定

  • onxxxx :同类事件会覆盖 ==>只能给一个元素注册一个同类事件
  • 元素.addEventListener(‘事件类型’,‘事件处理函数’,‘是否捕获’);
    • 事件解绑:removeEventListener
  • 元素.attachEvent(‘on事件类型’,‘事件处理函数’)
    ==> 两个方式的区别
    ==> 注册事件的时候事件类型参数的书写
    –> addEventListener不要写on
    –> attachEvent要写on
    ==> 参数个数
    –> addEventListener一般是三个常用参数
    –> attachEvent一般是二个常用参数
    ==> 执行顺序
    –> addEventListener顺序注册,顺序执行
    –> attachEvent顺序注册,倒序执行
    ==> 使用浏览器
    –> addEventListener:非IE7,8使用
    –> attachEvent:IE7,8使用

事件


1 事件的传播:子元素的事件触发,父元素的同类事件也会触发

2 冒泡,捕获,目标

  • 目标: e.target||e.srcElement
  • 冒泡: 事件从目标开始依次向外触发,直到window
  • 捕获: 事件从window开始依次向内触发,直到目标

事件监听

  • 元素.addEventListener(‘事件类型’,‘事件处理函数’,‘是否捕获,默认false’)
  • 新的事件:
    ==> mouseenter,也是鼠标移入事件,不会冒泡
    ==> mouseleave,也是鼠标移出事件,不会冒泡
    ==> mouseover,也是鼠标移入事件
    ==> mouseout,也是鼠标移出事件

3 事件委托:就是把子元素的事件绑定到父元素上

4 阻止冒泡

  • 兼容写法:e.stopParpagation?e.stopParpagation():e.cancelBubble=true
  • e.stopPropagation()
  • e.cancelBubble = true;

5 阻止默认行为

  • 兼容写法: e.preventDefault?e.preventDefault():e.returnValue = false
  • e.preventDefault()
  • e.returnValue=false;

总结


1 正则表达式:检测字符串的规则

2 创建正则表达式

var reg = /\d/gi

var reg = new RegExp('hello','ig')

3 正则表达式里面的字符

  • 元字符:

    • . ==> 匹配非换行的任意字符
    • \ ==> 转义符,把有意义的符号转换成没有意义的字符串,把没有意义的字符串变成有意义的字符
    • \s ==> 匹配空白字符
    • \S ==> 匹配非空白字符
    • \w ==> 匹配字母数字下划线
    • \W ==> 匹配非字母数字下划线
    • \d ==> 匹配数字
    • \D ==> 匹配非数字
  • 限定符

      • ==> “前一个内容”出现至少1次,也就是出现1-正无穷次
      • ==> “前一个内容”出现至少0次,也就是出现0-正无穷次
    • ? ==> “前一个内容”出现0次或1次,也就是出现0-1次
    • {n} ==> “前一个内容”出现n次
    • {n,} ==> “前一个内容”出现至少n次,也就是出现n-正无穷次
    • {n,m} ==> “前一个内容”出现n到m次
  • 边界符

    • ^ ==> 表示开头,修饰他后面的字符
    • $ ==> 表示结尾,修饰他前面的字符
    • ^$ ==> 表示精确匹配,内容必须是^和$里面的内容,不能多
  • 特殊符号

    • () ==> 限定一组元素
    • | ==> 或者,正则里面的a|b,表示a或者b都可以
    • [] ==> 字符集合,表示写在[]里面的任意一个都行
    • [^] ==> 反字符集合,表示写在[]里面之外的任意一个都行
      • ==> 表示范围,比如a-z表示小写字母
  • 标识符

    • i ==> 表示忽略大小写
    • g ==> 表示全局匹配

4 正则的方法

  • reg.test(str);
    ==> 作用:用来查看正则表达式与指定的字符串是否匹配
    ==> 语法: reg.test(‘要检测的字符串’)
    ==> 返回值:如果匹配返回true,否则返回false,全局匹配标识符此处没有作用

  • reg.exec(str);
    ==> 作用:在指定的字符串中搜索符合正则的字符
    ==> 语法: reg.exec(‘要搜索的字符串’)
    ==> 返回值:把字符串中符合正则的第一个以及一些其他信息,以数组形式返回,找不到返回null,全局匹配标识符此处没有作用

5 字符串的方法

  • str.search(reg)
    ==> 作用:查找字符串中是否有满足正则条件的内容
    ==> 语法: str.search(reg)
    ==> 返回值:有的话返回索引,没有返回-1,全局匹配标识符此处没有作用

  • str.match(reg)
    ==> 作用:找到字符串中符合正则条件的内容返回
    ==> 语法: str.match(reg)
    ==> 返回值:
    –> 没有标识符g,是和exec方法一样
    –> 有标识符g,是返回一个数组,里面是匹配到的每一项

  • str.replace(reg,newSubStr)
    ==> 作用:找到字符串中符合正则条件的内容并替换掉
    ==> 语法:str.replace(‘要被替换的字符或者是正则’,‘新的字符’)
    ==> 返回值:替换好的新字符串
    –> 没有标识符g,只替换第一个匹配的
    –> 有标识符g,替换所有匹配的

ES5 ES6


1 JSON

  • JSON.parse:把json字符串转js对象/数组
  • JSON.stringify:把js对象/数组转成json字符串
    • 不认识函数,例如:转换时数组里面有函数则转换为null

2 this

  • this关键字
    ==> 每个函数内部都有一个关键字this
    ==> 重点:函数内部的this只和函数的调用方式有关,和函数的定义方式没有关系
    ==> 函数内部的this指向谁,取绝于函数的调用方式
  • 普通函数调用:window
  • 事件函数调用:事件源
  • 对象的方法调用:对象
  • 定时函数调用:window

3 使用call/apply/bind可以改变this指向(是强行改变this指向的方法)

  • call: 函数名.call(新this指向,实参1,实参2,…)

    • 参数:如果想不改变this的指向,第一个参数写:null
  • apply: 函数名.apply(新this指向,[实参1,实参2,…])

    • 参数:如果想不改变this的指向,第一个参数写:null
  • bind: var newFn = 函数名.apply(新this指向)

  • 原函数this指向不变,返回的新函数newFn的this指向变了
  • 箭头函数的this指向无法改变

4 let/const

  • let和const不能重复声明
  • let和const没有预解析
  • let和const有块级作用域
  • let声明的时候可以不赋值,const声明的时候必须赋值
  • let可以重新赋值,const不能重新赋值

5 箭头函数

  • 重点:箭头函数只能简写函数表达式,不能简写声明式函数
// 如只有一个形参可以省略(),但是如果形参有默认值,不能省略()
var fn = (形参1=默认值1,形参2)=>{
    // 函数代码,如果只有一句,省略{},会自动return
}
// 特殊的:
// 箭头函数没有this,他的this根据上下文确定
// 箭头函数没有arguments

6 解构赋值

var obj = {a:100,b:200};
var {a,b} = obj;
var un = "zhangsan"
var pw = "123";
var p1 = {un,pw};

var arr = [1,2,3];
var {a0,a1,a2} = arr;

7 模板字符串:${变量}

==> 以前使用:'',""
==> es6中我们表示字符串的时候使用``(反引号)
==> 反引号和""的区别
    1 反引号可以换行书写
    2 反引号可以直接在字符串里面拼接变量,里面使用变量:${变量}

8 展开运算符: …

9 BigInt:任意大的整数

  • 是一种内置对象,他提供了一个方法表示大于Math.pow(2,53)-1的整数
  • 这个数字是Number能表示的最大数

10 Symbol

==> 一种基本数据类型
==> 使用Symbol()会返回Symbol类型的值
==> 每个Symbol()函数返回的Symbol值都是唯一的
==> Symbol值目前只能作为对象属性的标识符

11 Set对象是值的集合,类似数组:size,add(),delete(),clear(),has()

==> Set中的元素只会出现一次,即set中的元素是唯一的

12 Map类似对象:size,set(),get()

  • 语法:var num=new Map([".":"."],[])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值