条件语句,循环语句,while循环,do while:
arr
数组的定义:
New array(length/content)
字面量
数组的读和写【arr[num]不可溢出来读//undefined; arr[]=xxx;可以溢出来写】
Array: 数组在JavaScript里面很难报错,可以直接赋值
数组常用方法:
改变原数组【Push,pop,shift,unshift,sort,reverse,】
splice
不改变原素组
Concat,join split,tostring,slice
事件 :
1.移动事件
2.点击事件
3.覆盖时间
4.键盘事件
绑定事件:
on.xx绑定事件—句柄
ele.onxxx = function(event){}
兼容性好,但是一个元素的同一个事件上只有一个
基本等同于写在Html行间上`在这里插入代码片
obj.addEnventListener(type,fn,false);【w3c标准的】【能给一个对象绑定一个事件的多个处理函数】
IE9以下不兼容,可以为一个事件绑定多个处理事件
obj.attachEvent(‘on’+type,fn)【ie9独用,能给一个对象绑定一个事件的多个处理函数,并且一个对象的一个事件绑定同一个函数多次他都能执行】
就是一个事件同样可以绑定多个处理程序
ele.onxxx = function(event){} [程序this指向dom元素本身]
. obj.addEventListener(type,fn,false); [程序this指向dom元素本身]
obj.attachEvent(‘on’,+type,fn); [程序this指向window]
封装兼容性addEvent(elem,type,handle);方法:
//Eg-code:
Function addEvent(elem,type,handle){
If(elem.adddEventListener){
Elem. adddEventListener(type,handle,false);
}else if(elem.attachEvent){
Elem.attachEvent(‘on’+type,function(){
Handle.call(elem);
})
}else{
Elem[‘on’+type] =handle
}
}
}
解除事件处理程序:
ele.onclick = false/’’/null;
ele.removeEventListener(type,fn,false);
ele.detachEvent(‘on’+type,fn);
注:若绑定匿名函数,则无法解除
事件处理模型-事件冒泡(false)、捕获(true):
事件冒泡:
结构上(非视觉上)嵌套关系的元素,会存在事件冒泡的功能,即同一事件,自子元素冒泡向父元素(自底向上)
事件捕获:
结构上(非视觉上)嵌套关系的元素,会存在事件冒泡的功能,即同一事件,自父元素捕获至子元素(事件源元素)(自顶向上)
IE,没有捕获事件
触发顺序,先捕获,后冒泡
Focus、blur、change、submit、reset、select等事件不冒泡
取消冒泡:
w3c标准event.stopPropagation();但不支持ie9以下版本
ie独有event.cancelBubble = true
封装取消冒泡的函数stopBubble(event)
Function stopBubble(event){
If(event.stopPropagation){
Event.stopPropagation();
}
else{
event.cancelBubble =true;
}
}
阻止默认事件:
默认事件-表单提交,a标签跳转,右键菜单等
Return false;以对象属性的方式注册的事件才生效
Event.preventDefault();w3c标注,IE9以下不兼容
Event.returnValue = false;兼容ie
封装阻止默认事件的函数cancelHandler(event);【void(false):取消默认事件----==return false】
Function cancelHandler (event){
If(e.preventDefault){
e.preventDefault();
} else{
e.returnValue = false;
}
}
事件对象:
Envent ||window.event用于IE
事件源对象:
Event.target 火狐只有这个
Event.srcElement ie只有这个
这俩chrome都有
兼容写法
事件委托机智:【简便,效率高】
//Eg-code:
var ul = document.getElementsByTagName('ul')[0];
ul.onclick = function(e){
var event = e || window.event;
var target = event.target || event.srcElement;
console.log(target.innerText);
}
JS和脚本化:
鼠标事件:
Click、mousedown、mousemove、mouseup、contextmenu、mouseover、mouseout、mouseenter、mouseleave
用button来区分鼠标的按键,0/1/2
DOM3标准规定:click事件只能监听左键,只能通过mousedown和mouseup老判断鼠标键
鼠标事件:
拖拽应用:
应用mousedown mousemove mouseup
随机移动的方块
[Mousever]
键盘分类:
Keydown keyup keypress Keydown>keypress>keyup
Keydown>keypress>keyup Keydown和keypress的区别
Keydown可以响应任意键盘按键,keypress只可以响应字符串键盘按键 Keydown返回ASCII码,可以转换相应字符
文本操作事件:
Input(input里面输入或删除都触发事件,只有文本框里面值不一样就触发),focus,blur,change
时间分类:
窗体操作(window上的事件)
Scroll load
Onmousemove:鼠标移动事件
Onmousedown:鼠标按下去的事件
下面我们就来实际操作:扫雷喽!!
///首页
剩余雷数:10