随手笔记(6)

闭包 事件 事件委托 bom 正则

闭包
闭包是 函数返回值为定义的函数
闭包优点,外部函数可以访问函数体内的变量
保证变量不会受全局变量污染
闭包缺点,函数执行后,变量不会释放,容易导致内存泄露
变量释放,每次执行函数时候,变量都为初始化状态
变量没释放,具有存值作用,可以实现累加效果
深拷贝:拷贝数据
js中基本类型数据 都是深拷贝 因为基本类型都存在【栈中】
浅拷贝:拷贝指针
引用类型数据都是浅拷贝 因为引用类型数据都存在【堆中】
拷贝数组
copyArr()
1.定作用
2.定形参 确定形参做业务
3.有实参 一个业务怎么做
4.用形参代替固定量
5.将处理后结果返回
引用类型数据原理
在堆中多存一个数据 让这个数据拷贝另一个数据中内容
导航:每个变量存的是不同的指针
需求:深拷贝复杂数据
1:完成一层的数组或对象深拷贝;并返回对应的值
2.针对复杂数据;取值时候;可能是数组可能是对象---->满足条件写条件句
3.不管取到数组函数对象,就当一层去拷贝 调用深拷贝函数
因为每次调用deepCopy 都会返回 数组或者对象,不需要考虑 函数的问题
DOM
1.dom 是对象
2.所有的html标签都是dom对象
3.只有dom对象才能使用dom对象下的API
总结 1.DOM选择器的作用 找到标签对他进行js操作
2.所有对标签的操作,一般都是dom操作 需要被操作的变量 必须是dom对象
文本节点 文字
元素节点 标签
属性节点 标签行内属性
innerHTML 获取元素节点中所有内容 有文本节点
InnerText 获取元素节点中文本节点
innerHTML与innerText改变是,节点内全部替换
innerText IE不兼容 推荐innerHTMl
outerHTML 获取元素中所有内容 但是 包含元素本身
DOM节点操作
语法:所有节点属性都是dom对象中的,所有的节点属性,dom对象.节点属性
节点应用:帮助当前元素,找到其他元素并对其他元素操作
注意 由dom对象组成的数组 与dom对象区别
1.数组 支持数组中所有操作
2.dom对象 是对象,dom的所有操作,大多数是基于dom对象下属性
3.数组虽然是由dom元素组成,但是不能直接使用dom中属性 使用—数组取值
DOM事件
事件:实现用户与浏览器的交互
交互:用户做了某个行为;客户端(浏览器)做出回应
事件绑定—必须给【dom对象】
事件委托
事件模式
事件对象—记录事件触发所有内容–例如,什么事件,在哪里
事件处理函数—事件绑定后的就是事件函数–当用户触发事件
形参–作用接受事件对象
实参–在触发事件时传入【事件对象】
返回值–通常无
事件概要
1.事件是什么
事件是用户在浏览器上的操作
2.事件处理函数的作用
作用是,在某个事件时触发用它的JS代码调用它
3.事件对象的作用
可以获得和哪个按键结合
可以获得点击所在的位置
可以获得点击所对应的标签
4.用户和浏览器交互的过程
用户做某些事情浏览器做出的响应以及回复
事件分类
1.window
onblur 失去焦点
onclick 鼠标点击对象
onfocus 元素获得焦点
2.鼠标
click
3.键盘
keydown:键盘按下时触发
4.表单
onsubmit()
5.触摸事件 touch
touchstart:手指放到屏幕上时触发
touchmove: 手指在屏幕上滑动式触发
touchend: 手指离开屏幕时触发
事件绑定
1.写出方式
在DOM元素中绑定
在代码中直接绑定
绑定事件监听函数

事件模式
1.什么是冒泡?
当你使用事件冒泡时,子级元素先触发,父级元素后触发
2.什么是捕获?
当你使用事件捕获时,父级元素先触发,子级元素后触发
3.如何阻止冒泡?
非IE e.stopProgration
IE e.cancelBubble()
4.如何阻止默认事件或浏览器默认行为
非IE e.preventDefault
IE e.returnValue
5.用户怎么问的浏览器
用户触发某个事件后然后通过服务器传入浏览器
6.浏览器对用户的问题如何处理
用事件处理函数进行处理
7.怎么处理的,处理后如何响应的?

事件委托
1.什么是事件委托
事件委托 事件委托本应该子元素处理事件 由父元素处理事件完成
2.事件委托的优点是什么
减少dom交互让网页更加优化
3.如何获取触发事件的元素?
e.target
事件对象
1.IE浏览器与其它浏览器事件对象有什么区别
IE8以下:event事件对象在window中,获取,window.event
其它浏览器可以直接方式
2.怎么能够接受到事件对象
e.target
e.toElement
e.srcElement
3.event.clientx/clientY/pageX/pageY/x/y
event.offsetX/offsetY
event.screenX/screenY
clientX和clientY是相对于浏览器左上角的(0, 0)的坐标
pageX和pageY是相对于整个网页左上角(0,0)的坐标
offsetX和offsetY是相对于事件源左上角(0,0)的坐标
screenX和screenY是相对于设备屏幕左上角(0,0)的坐标
事件删除
1.事件删除的方式
正则对象作用:
1.描述字符描述
2.匹配字符----匹配结果
3.效验字符----数据验证,表单验证
正则是对象
基础语法 “^([]{})([]{})([]{})$”
正则字符串 = “开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束
bom模式

  • screen 屏幕对象

  • navigatoer 浏览器独享

  • appName 获取浏览器名字

  • location

  • .href 获取URL地址

  • pathName 获取路径

  • history

  • back()返回上一个浏览页面

  • go()跳转到第几个页面
    正则对象
    作用 匹配字符
    校验

  • .test()返回true false 验证某个字

  • match()
    语法

  • /parrent/gi g全局匹配 i 大小写

  • []匹配的内容

  • ^ 开始

  • $ 结束

  • ? 长度{0,1}

  • , + {1,–}

  • *{0,}

  • [0-9] \d

  • [a-zA-Z]

  • [a-zA-Z0-9_] \w

你可能感兴趣的:(随手笔记(6))