day01
history 对象
history.go(正数/负数/0):
location:保存了当前窗口的url
程序员的必备常识:一个url几部分组成
1,协议:http(未加密)/https(加密)
2,主机号/域名/ip地址:其中域名需要购买·
3,端口号:https默认端口号:443 http默认端口号80、
4,路由:
5,请求信息:
组成:协议://域名:端口号/路由?请求信息
属性不用记,直接输出location可以查看
通过css选择器查找元素
1,var elem=document.querySelector("任意css选择器")
缺点:一次只能查找和操作一个,如果匹配多个会返回第一个
2,var elelms=document.querlySelectorAll("任意选择器")
优点:
1,找到的是集合
2,复杂查找很舒服
3,返回是一个静态集合
面试题:静态集合和动态集合
1,动态集合每一次bom变化都会悄悄的查找页面元素让页面元素,让页面和数据一致但效率降低,不支持foreach
2,静态集合每一次bom变化不会悄悄的查找页面元素让页面元素,让页面和数据不一致但效率提高,支持foreach
上树3种:
appendchild(elem)在父元素末尾追加一个子元素
insertBefore(elem,已有子元素)在父元素末尾追加一个子元素elem,但是放在已有子元素前面
replaceChild(elem,已有子元素)在父元素中替换已有子元素
扩展:
input/textarea的两个事件:onfocus(获取焦点)和onblur(失去焦点)
创建变量的新方式:let 变量名=值
优点:1,解决了声明提前,一定是先创建在使用
2,带来块级作用域,一个{}就是一个块
3,let绑定事件可以当作下标,foreach中的形参就是用let创建的
类数组对象变为普通数组:
lis=Array.from(类数组);
day02
递归
专用于遍历层级不清楚的情况-dom树和数据
如何使用:
function 函数名(root){
1,root第一层要做的操作
2,判断有没有下一层,如果有下一层再次调用此方法,但是传入的实参是自己的下一层
}
绑定事件新方法
elem.addEventListener("事件名",callback)
老ie:elem:attachEvent(”on事件名,callback“)
option的简化上树
select.add(new.Option("innerHTML","value"))
day03
dom的重点:定时器,客户端存储技术,event
event:
在函数中传入一个形参e
老ie:event
1.获取鼠标位置:
相对屏幕位置:e.screenX/Y
相对浏览器显示区域的位置的坐标:e.clientX/Y
相对网页的位置坐标:e.pageX/Y
2,阻止冒泡:
e.stoppropagation()
老ie:e.cancelbubble=true
事件委托:
e.target
老ie:e.srcElement
阻止浏览器默认事件
e.preventdefault()
老ie:e.returnvalue=false
新学的事件
右键:window.oncontextment
键盘事件 window.onkeydown
windiw.onkeypress
window
获取键码:e.keyCode
扩展
eval(str)
elem.nodeName
day04
事件取消绑定
1,on事件=()=>{}:取消直接null
2,addeventlisenter(“事件名”,fi):取消remoeventlisenter(“事件名”,fi)
注意:调用的函数名必须是同一个
call/apply
语法:函数名.call(借用对象,实参)
语法:函数名.apply(借用对象,arr)
调用立即使用而且会还回去
bind:永久替换
语法:var 新函数=函数名.bind(指定对象,可以传入固定实参)
类数组转换成数组
1,接住=arrary.prototype.slice.call/apply(类数组)
2,接住=Arrary.from(类数组)
判断x是不是数组:
object.prototype.tostring.call(x)=="(object Arrary)"
返回true就是数组
es6
1,let
2,const
3.箭头函数
4,模板函数:``
可以识别变量但是要加${}
5,解构赋值
1,var [a,b,c]=[1,2,3]
2,var {a,b,c}={a:1,c:3,b:2}
传参顺序随意,return可以传出多个值了
function f1(){
return [a,b]}
var [a,b]=f1()
6,set map
set去重
[...new set(arr)]
...:扩展运算符,脱掉数组/对象的衣服
day05
正则
/no/后缀
g:找全部 i:不分大小写
备选字符集:/[备选字符集]/:一个[]只管一个字符集
如:
[0-9]
[a-zA-Z]
[\U4e00-\u9fa5]
预字符集
数字:\d
数字字母下划线:\w
空白字符:\s
除了换行的字符:.
量词:
字符集{n,m}最少那个,最多m个
{n,}最少n个,多了不限
{n}只能有n个
选择和分组
规则1|规则2
(规则1|规则2)
^$表示从头到尾完全匹配
密码强度验证:(?![]+$)
[]里面写不符合的情况
、
切割
var newstr=strl.split(正则)
替换
var newstr=strl.replace(正则,”新内容“)
var newstr=strl.replace(正则,function(key,i,str){
key--关键字
i--关键字的下标
还可以写多个形参
第二个代表正则中的第一个分组,以此类推
}
边输入边判断:.oninput
鼠标按下:onmousedown
鼠标松开:onmouseup
)