zoukankan      html  css  js  c++  java
  • 关于es5的一些新方法

    1.数组方法
    (1)isArray
    在之前我们判断数组类型的数据都是用instanceof来判断的,es5新增了对数组的判断,即Array.isArray()
    (2)every和some
    这两个方法一般用于对数组过滤,并返回boolean值,
    every方法对应于要求数组中所有元素都符合要求,而some是只要有一个符合就返回true,二者的使用方法一致。
    var flag = array.every(function(value, index, fullValue){
    return value>5;//这里可以写筛选条件
    });
    (3)forEach
    这个类似于jQuery中的$.each();但是注意的是参数的不同,二者的索引和子集位置相反
    array.forEach(function(value, index, fullArray){

    });
    (4)map
    这个方法可以通过遍历一个数组来返回一个新的数组,并且可以对数组每一项进行修改
    var newArray = array.map(function(value, index, fullArray){

    });
    (5)filter
    对数组进行过滤,并返回符合条件的数组,这个方法可以看做缩减版的map方法
    var newArray = array.filter(function(value, index, fullArray){
    return value>5;//过滤条件
    });
    2.对象方法
    (1)Object.preventExtensions()和Object.isExtensible()
    这两个方法,前者用于对象的锁定,即Object.preventExtensions(obj),obj对象无法再添加新的属性和方法,对象无法继续扩展,而Object.isExtensible用于检测对象是否被锁定。
    例:var obj = {
    a: 1
    };
    Object.preventExtensions(obj);
    obj.b = 2;
    console.log(obj);//输出{a:1}
    (2)Object.freeze()和Object.isFrozen()
    这个两个方法,前者用于更进一步锁定对象,也就是说对象的原有值无法改变,当然也无法删除,而后者检测对象是否具有这个属性。
    (3)Object.getOwnPropertyDescriptor()
    var obj = {
    name:'javascript'
    }
    (4)Object.getOwnPropertyDescriptor(obj, "name");
    //返回如下
    {
    configurable:true,
    enumerable:true,
    value:'javascript',
    writable:true
    }
    这里返回的值可以用Object.defineProperty()来设定。而Vue的双向数据绑定也用的这一点,具体在我之前的写的博客中有(http://www.cnblogs.com/Upton/p/5969475.html)。
    (5)Object.keys()
    可以获取所有的对象key值
    (6)Object.create()
    可以创建一个对象的副本,类似于复制对象,对于继承有一定意义。
    var person = {
    name:"javascript"
    };
    var p1 = Object.create(person);

  • 相关阅读:
    1007 正整数分组
    Review: JQuery
    Summary: DOM modification techniques
    B
    D
    C
    hdu5592 倒序求排列+权值线段树
    主席树入门——询问区间第k大pos2104,询问区间<=k的元素个数hdu4417
    二维前缀和好题hdu6514
    莫比乌斯反演理解
  • 原文地址:https://www.cnblogs.com/Upton/p/6025059.html
Copyright © 2011-2022 走看看