遍历数组元素
数组.forEach(function(item , index ,array){
item:数组元素
index:数组元素的索引
array:数组本身
})
筛选数组元素
数组.filter(function(item ,index, array){
item:数组元素
index:数组元素的索引
array:数组本身
return 筛选条件
})
返回值:把符合条件的放到一个数组中返回
判读是否有满足条件的元素
数组.some(function(item,index,array){
item:数组元素
index:数组元素的索引
array:数组本身
return 判读条件
})
//返回值为false或者true
// return true 可以结束判断
map()方法
//返回原数组每个元素调用一次其函数后组成的新数组
数组.map(function(currentValue , index , array){
//要执行的函数
currentValue : 数组中正在处理的当前元素,
index:数组中正在处理的当前元素的索引值 ,
array: map方法调用的数组
})
every()方法
//用来测试数组内每个元素是否都能通过某个指定函数的的测试
数组.every(function(element,index,array){
参数:
element:用于测试的当前值,
index:用于测试当前值的索引,
array: 调用every()的数组本身
})
返回值: false 或者 true
删除字符串两边的空格
字符串.trim()
<input type="text"> <span></span>
<script>
var ipt = document.querySelector('input');
var span = document.querySelector('span');
ipt.addEventListener('blur',function(){
var content = ipt.value.trim();
if(content.length < 6 || content.length > 12){
span.innerHTML = '内容不合法···'
}else{
span.innerHTML = '内容正确'
}
})
</script>
获取对象的所有属性名
Object.keys(被获取的对象)
返回值 : 含有所有属性名的数组
添加 / 修改属性
语法: Object.defineProperty(被操作的对象 , 要操作的属性 , {
属性的描述对象
})
属性描述对象:
{
value: 属性值,
writable:true\false ,定义属性值是否可以被修改 默认为false,
enumerable: true\false , 定义该属性是否可以被遍历 默认为false,
configurable:true\false , 定义该属性是否可以被删除 默认为false
}
更改函数中this的指向
call()方法
一般应用于继承属性时
函数.call(this要指向的对象, 参数1,参数2 ...)
apply()方法
一般利用内置对象对数组进行操作
函数.apply(this要指向的对象 , [参数1, 参数2,....])
bind()方法
一般用于需要得到一个thi改变后的函数
函数.bind(this要指向的对象 , 参数1 , 参数2,...)
call()方法和apply()方法都会改变this指向并且调用 只不过使用的方法不同 而bind()方法不会调用 而是会将原函数改变this指向后拷贝一个新的函数 ,所以一般要一个新的函数进行接收
高阶函数:
(1)函数作为参数传递的函数
(2)函数作为返回值的函数
闭包
闭包函数是特殊的函数
表现形式:
1、函数内部嵌套了函数
2、内部函数使用了外部的变量
作用:
1、延伸了局部变量的作用范围 在函数外部可以访问局部变量
2、局部变量常驻内存(不会被销毁)
<ul>
<li>我是第一个li</li>
<li>我是第二个li</li>
<li>我是第三个li</li>
<li>我是第四个li</li>
</ul>
<script>
var lis = document.querySelectorAll('li');
for(var i = 0 ; i < lis.length ; i++){
(function(i){
lis[i].onclick = function(i){
console.log(i)
}
})(i);
}
</script>
也可以是:
var lis = document.querySelectorAll('li');
for(var i = 0 ; i < lis.length ; i++){
lis[i].onclick = (function(){
return function(i){
console.log(i)
}
})(i)
}