保安日记:JavaScript学习第十七篇之ES5中的新增方法

ES5中的新增方法

数组方法

forEach 遍历数组
 <script>
      var arr = [1, 2, 3];
      arr.forEach(function (value, index, array) {
        console.log("每个数组元素" + value);
        console.log("每个数组元素的索引号" + index);
        console.log("数组本身" + array);
      });
    </script>
filter 筛选数组

----直接返回一个新数组

var arr = [1, 2, 43, 44, 6, 7];
      var newArr = arr.filter(function (value, index) {
        return value >= 20;
      //return value %2 == 0;   //----返回偶数
      });
      console.log(newArr);
some

----查找数组中是否有满足条件的元素,返回值是布尔值,查到为true

----如果找到第一个满足条件的元素,终止循环,不再查找,因此适用于查询数组中唯一的元素

----在some方法里加上return true ,终止遍历,是迭代的效率更高

<script>
  var arr = [1, 2, 43, 44, 6, 7];
  var flag = arr.some(function (value) {
    return value >= 20;
  });
  console.log(flag);
</script>

字符串方法

trim去除字符串两侧空格
var str = '  andy   ';
var str2 = str.trim();

判断输入框内是否为空
var str = input.value.trim();
btn.onclick = function() {
	if (str == '') {
		alert('hello');
	} else {
		div.innerHTML = str;
	}
}

对象方法

Object.keys()----返回由属性名组成的数组
<script>
        // 用于获取对象自身所有的属性
        var obj = {
            id: 1,
            pname: '小米',
            price: 1999,
            num: 2000
        };
        var arr = Object.keys(obj);
        console.log(arr);
        arr.forEach(function(value) {
            console.log(value);

        })
    </script>
Object.defineProperty()----定义新属性或修改原有的属性
Object.defineProperty(obj,prop--属性,descriptor)

参数—descriptor:

  • 以对象形式书写{}
  • value 设置属性的值,默认为undefined
  • writable 值是否可以重写 默认为false
  • enumerable 目标属性是否允许被遍历 默认为false
  • configurable 目标属性是否可以被删除 默认为false
		var obj = {
            id: 1,
            pname: '小米',
            price: 1999
        };
        // 1. 以前的对象添加和修改属性的方式
        // obj.num = 1000;
        // obj.price = 99;
        // console.log(obj);
// 2. Object.defineProperty() 定义新属性或修改原有的属性
        Object.defineProperty(obj, 'num', {
            value: 1000,
            enumerable: true
        });
        console.log(obj);
        Object.defineProperty(obj, 'id', {
            // 如果值为false 不允许修改这个属性值 默认值也是false
            writable: false,
        });
        Object.defineProperty(obj, 'address', {
            value: '中国山东蓝翔技校xx单元',
            // 如果只为false 不允许修改这个属性值 默认值也是false
            writable: false,
            // enumerable 如果值为false 则不允许遍历, 默认的值是 false
            enumerable: false,
            // configurable 如果为false 则不允许删除这个属性 不允许在修改第三个参数里面的特性 默认为false
            configurable: false
        });
        console.log(obj);
        console.log(Object.keys(obj));
        delete obj.address;
        console.log(obj);
        delete obj.pname;
        console.log(obj);
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值