10.arguments,克隆,三目运算符,数组,类数组

                     /*arguments,克隆,三目运算符,数组,类数组*/
                               /*arguments,克隆*/
//克隆 [04:14 --> 26:25]

// var obj = {

//     name : "aaa",
//     age : 12,
//     card : ['visa', 'master'],
//     wife : {
//         name : "bbb",
//         son : {
//             name : "ccc"
//         }
//     }
// }

// var obj1 = {
//     name : obj.name,
//     age : 12,
//     card : [obj.card[0],obj.card[1]],
//     wife : {
//         name : "bbb",
//         son : {
//             name : "ccc"
//         }
//     }
// }

/*
遍历对象 for(var prop in obj)
1.判断是不是原始值   typeof() object  
2.判断是数组还是对象  toString
3.建立相应的对象或者数组
递归


*/

// function deepClone(origin, target) {
    
//     var target = target || {},
//     toStr = Object.prototype.toString,
//     arrStr = "[object Array]";

//     for (var prop in origin) {
//         if (origin.hasOwnProperty(prop)) {

//             if (origin[prop] !== "null" && typeof(origin[prop]) == 'object') {
                
                // if (toStr.call(origin[prop] == arrStr)) {
                //     target[prop] = [];
                // }else{
                //     target[prop] = {};
                // }

//                 target[prop] = toStr.call(origin[prop]) == arrStr ? [] : {}; //三目运算符

//                 deepClone(origin[prop],target[prop]);
//             }else{
//                 target[prop] = origin[prop];
//             }                
//         }           
//     }
//     return target;
// }       


                     /*三目运算符*/
// 条件判断?是 : 否 并且会返回值
// var num = 1 > 0 ? 2 + 2 : 1 + 1;

                    //数组
/*
数组的定义
    new Array(lenth/content)
字面量
    var arr = [];  //数组字面量
    var arr = new Array();

数组的读和写  
    arr[num]  //不可以溢出读
    arr[num] = xxx; //可以溢出写      
*/

/*
数组常用的方法
    改变原数组
    push : 在数组的最后一位添加数据,
    pop : 会把数组最后一位剪切出来,pop只可以剪切一位,
    shift : 在数组前面删除数据,
    unshift : 在数组的前面添加数据,
    sort : 给数组里的数排序, [40:00 -->59:00]   
    var arr = [1, 2, 3, 4, 7, 20]; [43:00 --> 45:00]
    1.必须写两个形参
    2.看返回值 1)当返回值为负数时,那么前面的数放在前面
              2)为正数,那么放在后面
              3)为0时,不动
    arr.sort(function (a, b) {0
                return
            }())

    
 
    reverse : 它会把原数组返回来,
    splice : 从第几位开始,截取多少长度,在切口处添加新的数据 [30:00 --> ]

不改变原数组
    concat,
    join : arr.join("(这里必须是字符串原始值,最后它会把你加的符号让数组中的每一个连接起来成为一个字符串)")
    split : 和join互逆的,
    toString,
    slice : 从该位开始截取,截取到该位,里面不写就是整个截取
*/

// 系统push方法 [18:00 --> ]
// var arr = [1, 2, 3]
// Array.prototype.push = function () {
//     for (var i = 0; i < arguments.length; i++) {
//         const element = array[i];
//         this[this.length] = arguments[i];
//     }
//     return this;
// }


                               /*类数组*/
/*
类数组
    1.可以利用属性名模拟数组的特性
    2.可以动态的length属性
    3.如果强行让类数组调用push方法,则会根据length属性值得位置进行属性扩充

    属性要为索引(数字)属性,必须有length属性,最好加上push
*/

//例题1:[07:30 --> 15:15]
// var obj = {
//     "2" : 'a',
//     "3" : 'b',
//     "length" : 2,
//     "push" : Array.prototype.push
// }
// obj.push('c');
// obj.push('d');
// obj --> 

// 封装type

// 数组去重
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值