ecma基本语法还是得了解的
// 数组可接收两个参数,1为回调函数,2为this的指向
//类似于for循环
arr.forEach(function(val,inde,arr){
//this 就是 arr
}.bind(this))
arr.forEach(function(val,inde,arr){
// this 就是 123
},123)
arr.forEach((val,index,arr)=>{
})
//返回一个数组
let newarr = arr.map((val,index,arr)=>{
return val
})
// 过滤元素 返回数组 返回true 就被选上
arr.filter((val)=>val=='a')
// 查找元素 返回true 就被选上 只选第一个符合条件的
arr.find(val=>val=='a')
// 找在哪个位置 没有就是-1
arr.findIndex()
// 查找元素 只要有一个符合条件 就返回true
arr.some(val=>val=='a')
// 查找元素 如果有一个不符合条件 就返回false
arr.every(val=>val=='a')
// 递归 数组加法 阶乘 从左到右
arr.reduce((prev,cur,index,arr)=>{
// 加法
// return prev+cur
// 阶乘
// return Math.pow(prev,cur)
return prev**cur
})
for(let key of arr.keys()) //数组下标
for(let val of arr.values()) //数组値
for(let item of arr.entries()) //数组每一项
for(let [key,val] of arr.entries()) //解构
// 将类数组(arguments nodelists...)转化为数组
// es5 [].slice.call()
// es6 下面的 可以pop 可以push 只要有length这个属性都可以使用
Array.from()
// 将一组値转化为数组
Array.of()
// 填充
// arr = new Array(10)
arr.fill('填充値','开始位置','结束位置')
// 查找是否包括某个元素
arr.includes()
// 对象
// 比较两値是否相等
Object.is(NaN,NaN) //true
Object.is(+0,-0) //false
// delete obj.b
let obj = {
one:'apple',
two:'banana',
three:'cat'
}
// console.log(Object)
let {keys,values,entries} = Object
for(let key of keys(obj)){
console.log(key)
}
console.log('---------------')
for(let value of values(obj)){
console.log(value)
}
console.log('---------------')
for(let entrie of Object.entries(obj)){
let [key,val] = entrie
console.log(entrie,key,val)
}
// one
// two
// three
// ---------------
// apple
// banana
// cat
// ---------------
// ["one", "apple"] "one" "apple"
// ["two", "banana"] "two" "banana"
// ["three", "cat"] "three" "cat"