持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情
1.es6常量:
常量的含义是指向的对象没办法更改,但是可以更改对象内部的属性。
const obj={
nam:'ass'
}
obj.name='sss'(这样可以)
变量增强写法:
const name='aaa'
const age=12
const obj={
name,age
}
(和 var obj={name:'aaa',age:12} 一样)
函数增强写法:
const obj={
run(){}
}
(和 var obj={run:function(){} } 一样)
2.可变参数:
function sum(...num){
console.log(num)一个数组,显示了所有参数。
arguments:function 自带的参数,也是一个数组,显示的传入所有参数。
}
sum(1,2,3,4,5,6,7,8)
3.高阶函数:
map(n=>{})//:对数组所有值进行操作改变。
filter(n=>{})//:过滤,判断数组中哪些需要的重新传入新数组。(回调函数必须传回 true或false filter(n=>{ return n>0 (即 return true 或 false) }))
reduce((preValue,n)=>{},0)//:对数组进行汇总。(两个参数,第一个是一个回调函数,第二个是一个初始默认值。 preValue是上一次计算得到的值,n是数组当前的循环的值。)
//如需累加reduce((preValue,n)=>{return preValue + n},0)
4.事件委托:
<div id="box">
<input type="button" id="add" value="添加" />
<input type="button" id="remove" value="删除" />
<input type="button" id="move" value="移动" />
<input type="button" id="select" value="选择" />
</div>
window.onload = function(){
var oBox = document.getElementById("box");
oBox.onclick = function (ev) {
var ev = ev || window.event;
var target = ev.target || ev.srcElement;
if(target.nodeName.toLocaleLowerCase() == 'input'){
switch(target.id){
case 'add' :
alert('添加');
break;
case 'remove' :
alert('删除');
break;
case 'move' :
alert('移动');
break;
case 'select' :
alert('选择');
break;
}
}
}
}
在同一个父级元素中,几个相同的div或标签,需要n个事件,这是运用它父级的事件,判断返回事件的目标节点,我们成为事件源,并执行事件,这样可以优化性能.
原理:每个函数都是一个对象,是对象就会占用内存,对象越多,内存占用率就越大,自然性能就越差了(内存不够用,是硬伤,哈哈),比如上面的100个li,就要占用100个内存空间,如果是1000个,10000个呢,那只能说呵呵了,如果用事件委托,那么我们就可以只对它的父级(如果只有一个父级)这一个对象进行操作,这样我们就需要一个内存空间就够了,是不是省了很多,自然性能就会更好。
- DOM操作——怎样添加、移除、移动、复制、创建和查找节点
(1)创建新节点
createDocumentFragment() //创建一个DOM片段
createElement() //创建一个具体的元素
createTextNode() //创建一个文本节点
(2)添加、移除、替换、插入、复制、移动
appendChild()
removeChild()
replaceChild()
insertBefore() //在已有的子节点前插入一个新的子节点
obj.cloneNode(deep) //deep:该参数是一个Boolean值,表示是否为深度复制。深度复制是将当前节点的所有子节点全部复制,当值为true时表示深度复制。当值为false时表示简单复制,简单复制只复制当前节点,不复制其子节点。
复制原DOM,添加到新的位置,删除原DOM
(3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的)
getElementById() //通过元素Id,唯一性