美文网首页
ES5-扩展

ES5-扩展

作者: 蓝醇 | 来源:发表于2019-03-07 20:56 被阅读0次

    JSON 对象

    1. JSON.stringify(obj/arr) 我们通常说的“json字符串”,只有两种:json对象、json数组

      js对象(数组)转换为json对象(数组)

    2. JSON.parse(json)

      json对象(数组)转换为js对象(数组)

        var obj = {
            name : 'Tony',
            age : 22
        };
        obj = JSON.stringify(obj);
        console.log(obj); // {"name":"Tony","age":22}
        console.log( typeof obj); // string
        obj = JSON.parse(obj);
        console.log(obj); // {name: "Tony", age: 22}
    
    

    Object的扩展

    ES5给Object扩展了一些静态方法,常用的2个:

        Object.create(prototype, [descriptors])
    

    作用: 以指定对象为原型,创建新的对象。同时,第二个参数可以为为新的对象添加新的属性,并对此属性进行描述。

    ​ value : 指定值

    ​ writable : 标识当前属性值是否是可修改的, 默认为false

    ​ configurable: 标识当前属性是否可以被删除 默认为false

    ​ enumerable: 标识当前属性是否能用for in 枚举 默认为false

    Object.defineProperties(object, descriptors)
    

    作用:为指定对象定义扩展多个属性。

    get :用来获取当前属性值得回调函数

    set :修改当前属性值得触发的回调函数,并且实参即为修改后的值

    存取器属性:setter,getter一个用来存值,一个用来取值

    obj对象本身就自带了两个方法

    get 属性名(){} 用来得到当前属性值的回调函数
    
    set 属性名(){} 用来监视当前属性值变化的回调函数
    

    数组的扩展

    \1. Array.prototype.indexOf(value) : 得到值在数组中的第一个下标

    \2. Array.prototype.lastIndexOf(value) : 得到值在数组中的最后一个下标

    \3. Array.prototype.forEach(function(item, index){}) : 遍历数组

    \4. Array.prototype.map(function(item, index){}) : 遍历数组返回一个新的数组,返回加工之后的值

    \5. Array.prototype.filter(function(item, index){}) : 遍历过滤出一个新的子数组, 返回条件为true的值

     /*
       需求:
       1. 输出第一个6的下标
       2. 输出最后一个6的下标
       3. 输出所有元素的值和下标
       4. 根据arr产生一个新数组,要求每个元素都比原来大10
       5. 根据arr产生一个新数组, 返回的每个元素要大于4
       */
    
        var arr = [1, 4, 6, 2, 5, 6];
        console.log(arr.indexOf(6));//2
        console.log(arr.lastIndexOf(6));//5
    
        arr.forEach(function (item, index) {
            console.log(item, index);
        });
    
        //Array.prototype.map(function(item, index){}) : 遍历数组返回一个新的数组,返回加工之后的值
        var arr1 = arr.map(function (item, index) {
            return item + 10
        });
        console.log(arr1);//[11, 14, 16, 12, 15, 16]
    
        //Array.prototype.filter(function(item, index){}) : 遍历过滤出一个新的子数组, 返回条件为true的值
        var arr2 = arr.filter(function (item, index) {
            return item > 4
        });
        console.log(arr2);//[6, 5, 6]
    

    函数function的扩展:bind()

    相关文章

      网友评论

          本文标题:ES5-扩展

          本文链接:https://www.haomeiwen.com/subject/ayvxpqtx.html