ES5

数组方法

// 遍历数组
[1, 2, 3, 4, 5].forEach(function (v, i, a) {
    console.log("index:" + i + ",value:" + v)
})

// 对数组中的每个元素进行操作,然后返回
var a = [1, 2, 3, 4, 5].map(function (v, i, a) {
    return v = v*v;
})

// filter过滤数组
var a = [1, 2, 3, 4, 5].filter(function (v, i, a) {
    return i % 2 == 0;
})

// 是否有满足条件的元素(any)
var flag = [1, 2, 3, 4, 5].some(function (v, i, a) {
    // 当找到第一个满足条件的元素后,就停止循环了
    return v < 3;
})

// 是否全部满足条件(all)
var flag = [1, 2, 3, 4, 5].every(function (v, i, a) {
    return v > 0;
})

字符串方法

// 去除前后空格
"  das  ".trim()

对象方法

// 获取对象属性名列表
Object.keys({name:'cxk',age:'18'})

Object.defineProperty

Object.defineProperty(对象,修改或新增的属性名,{
        value:修改或新增的属性的值,
        writable:true/false,//如果值为false 不允许修改这个属性值
        enumerable: false,//enumerable 如果值为false 则不允许遍历
        configurable: false  //configurable 如果为false 则不允许删除这个属性 属性是否可以被删除或是否可以再次修改特性
})	
var obj = {
    name:'cxk'
}
Object.defineProperty(obj,'name',{
    
    writable:false,
    enumerable:true,
    configurable:false
})

obj.name= 'jntm'; //无效
for (let i in obj){
    // 无法枚举到name
    console.log(i)
}
// 无法再重新修改特性
Object.defineProperty(obj,'name',{
    configurable:true
})