美文网首页
19、时间对象,引用类型

19、时间对象,引用类型

作者: 饥人谷_孟忠阳 | 来源:发表于2016-08-05 16:57 被阅读0次

    1、基础类型有哪些?复杂类型有哪些?有什么特征?

    • 基本类型:number,boolean,null,undefined等可以直接保存在栈内存中的数据段。
    • 复杂类型:对象,数组,函数,正则表达式。变量保存的是一个指针,也就是对象的储存地址。

    2、如下代码的输出? 为什么?

    var obj1 = {a:1, b:2};
    var obj2 = {a:1, b:2};
    console.log(obj1 == obj2);//false,obj1与obj2是两个不同的对象,储存在不同的位置,因此判定为不想等,也就是地址不同。
    console.log(obj1 = obj2);//Object {a: 1, b: 2},将obj2的地址赋给obj1,此时obj1的指针指向obj2储存的地址。
    console.log(obj1 == obj2);//true,obj1与obj2的指针指向同一个地址,因此相等。
    

    3、写一个函数getIntv,获取从当前时间到指定日期的间隔时间

    var str = getIntv("2016-01-08");
    console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
    
    function getIntv(data){
        var target=Date.parse(data);
        var today=Date.now();
        var diff=target-today;
    
        var getSecends=Math.floor( diff/1000);
        var secends=getSecends%60;
        var minutes=((getSecends-secends)/60)%60;
        var hours=((getSecends-secends-(minutes*60))/3600)%24;
        var days=(getSecends-secends-(minutes*60)-(hours*3600))/(3600*24);
        console.log("距除夕还有" +days+"天" +hours+"小时"+ minutes+"分" +secends +"秒");
    
    }
    

    4、把数字日期改成中文日期

    var str = getChsDate('2015-01-08');
    console.log(str); // 二零一五年一月八日
    
    function getChsDate(data){
        var date=data.split("-");
        var a=['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七',
          '十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']
    
        var year=a[date[0][0]] + a[date[0][1]]+ a[date[0][2]]+ a[date[0][3]];
        var month=a[date[1]] ;
        var day=a[date[2]] ;
        
        var ChsDate=year+"年"+month+"月"+day+"日";
        console.log(ChsDate);
    
    }
    

    5、写一个函数获取n天前的日期

    var lastWeek = getLastNDays(7); // ‘2016-01-08’
    var lastMonth = getLastNDays(30); //'2015-12-15'
    
    function getLastNDays(num){
        var today=Date.now();
        var des=today-num*24*3600*1000;
        var bofroe= new Date(des).toUTCString();
        console.log(before);
    
    }
    

    6、完善如下代码,用于获取执行时间如:

     var Runtime = (function(){
    var startTime,endTime,getTime;
     var obj = {
     start: function(){
     startTime = new Date.now//code here ..., 当前时间
     },
     end: function(){
     endTime = new Date.now //code here ... 结束时间
     },
     get: function(){
    getTime = endTime-startTime //code here ... 获取执行时间
     }
     };
    return obj;
    }());
    Runtime.start();
    //todo somethint
    Runtime.end();
    console.log( Runtime.get() );
    

    7、楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现

    function method(num){
        if (num==1){
            return 1;
        }
        else if(num==2){
            return 2;
        }
        else {
            return method(num-1)+method(num-2);
        }
    }
    

    8、写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、json对象中的任意项

    function deepCopy(obj){
        var newObj={};
        for(var key in obj){
            if(typeof obj[key]==="object"){
                newObj[key]=deepCopy(obj[key]);
            }
            else{
                newObj[key]=obj[key];
            }
        }
        return newObj;
    }
    

    相关文章

      网友评论

          本文标题:19、时间对象,引用类型

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