es5中的一些方法
数组方法
forEach()
array.forEach(function(currentValue,index,err))
currentValue 数组当前项遍历的值
index 数组当前索引
arr 数组对象本身
该方法用来遍历数组
- 使用
var arr = [1,2,3,4,5] var sum =0; arr.forEach(function(value,index,array){ sum +=value; }) console.log(sum) // 输出15
filter()
array.filter(function(currentValue,index,arr))
currentValue 数组当前遍历的值
index 数组当前项的索引
arr 数组对象本身
该方法用来创建一个新数组,通过检查指定的数组中符合条件的元素,用于筛选出数组并返回一个新的数组
- 使用
var arr = [1, 2, 3, 4, 5] var newarr = arr.filter(function(value, index, array) { return value >= 2; // 筛选出大于2的元素中 }) console.log(newarr); // 打印新数组 可以看到 1已经过滤出去了
some()
array.some(function(currentValue,index,arr))
currentValue 数组当前项的值
index 数组当前项的索引
arr 数组对象本身
该方法用于检测数组中的元素是否满足指定条件,通俗点查找数组中是否有满足条件的元素
返回布尔值 如果查找到这个元素就返回true,如果查找不到就返回false
如果找到第一个满足条件的元素就终止循环不在继续查找
- 使用
var arr = [10, 30, 4]; var flag = arr.some(function(value, index, arr) { return value >= 20; }) console.log(flag); // 返回true
字符串方法
trim()
str.trim()
清除字符串左边和右边的空白字符
trim()方法不回影响源字符串本身,返回一个新的字符串
- 使用
var str = ' andy '; console.log(str) 输出 andy var str1 = str.trim(); console.log(str1) 输出 andy
对象方法
Object.keys()
Object.keys(obj) 会将对象遍历并返回对象的key存到一个列表里
obj 对象元素
- 使用
var obj = { a: '1', b: '2', c: '3' } var arr = Object.keys(obj) console.log(arr); //输出结果 ["a", "b", "c"]
Object.defineProperty()
Object.defineProperty(obj,prop,descriptor) 定义新属性或修改原有的属性
obj 必须 目标对象
prop 必须 需要定义或修改属性的名字
descriptor 必须 目标属性所拥有的的特性
descript内是一个对象
value 设置属性的值
writable 值是否可以重写 默认为false
enumerable 目标属性是否可以被枚举 默认为false (就是在遍历是能不能获取到这个属性,false就是获取不到)
configurable 目标属性是否可以被删除或者 是否允许修改descriptor里面的特性 默认为false
// configurable 设置为false后就不能在后面修改descriport对象里的特性了,会报错
- 使用
// 定义对象 var obj = { id: 1, pname: '小米', price: 999 }; // 通过方法给对象添加一个新的属性 Object.defineProperty(obj, 'num', { value: 1000, // 给obj对象设置一个num属性并把值设置为1000 }) console.log(obj); // 输出多出num属性 // 通过方法给对象修改属性值 Object.defineProperty(obj, 'price', { value: 10, // 给obj对象的price属性修改为10 }) console.log(obj); // 输出 price为10 // 通过方法设置对象的值是否可以被修改 Object.defineProperty(obj, 'id', { writable: false, // 设置对象不允许修改id这个属性值 改为true就可以修改 }) obj.id = 2; console.log(obj); // 发现obj的id没有被修改 // 通过方法设置对象的值在遍历时是否可以获取到 和 是否可以删除或者修改该对象的特性 Object.defineProperty(obj, 'address', { value: '蓝翔', enumerable: false, //不可遍历address属性 默认为 false configurable: false // 不可删除和修改这个address属性 }) console.log(Object.keys(obj)); // 发现没有遍历address和num属性 // 从这个方法添加的都是false // num没有遍历是因为num是通过这个方法添加到对象里的其他的都是一开始就存在的 // 如果想让其他的也遍历就需要添加 enumerable方法 如果是像num那样后添加的属性默认就是不能遍历的 delete obj.address; // 删除对象中的address属性 console.log(obj); // 输出结果 {id: 1, pname: "小米", price: 10, num: 1000, address: "蓝翔"} // 发现address没有被删除 delete obj.pname; // 删除对象原有的属性 console.log(obj); // {id: 1, price: 10, num: 1000, address: "蓝翔"} 发现是可以被删除的 // 重新修改一下address的特性 Object.defineProperty(obj, 'address', { value: '蓝翔', enumerable: true, configurable: true }) console.log(obj); // Uncaught TypeError: Cannot redefine property: address at Function.defineProperty (<anonymous>) // 回报错不能在修改特性了,只能在原来的行修改特性
本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!