美文网首页
JS中的时间,日期

JS中的时间,日期

作者: 谢环志 | 来源:发表于2016-09-01 22:13 被阅读0次

    问答

    • 基础类型有哪些?复杂类型有哪些?有什么特征?
      答:
      基础类型有number,boolean,string,nul,undefinded这5种。
      复杂类型有object(对象),其中对象中又有数组、函数等复杂类型。
      特征:
      基础类型的特征是存储在栈内存中,按值访问,可以操作存储在变量中的实际的值
      复杂类型的特征是存储在堆内存中,按指针访问,操作复杂类型的对象时实际上是操作对象的引用(指针),而非实际的对象

    • 如下代码的输出? 为什么?

    var obj1 = {a:1, b:2};
    var obj2 = {a:1, b:2};
    console.log(obj1 == obj2);//输出 false 因为引用的是不同的对象
    console.log(obj1 = obj2); //输出 obj1的对象内容
    console.log(obj1 == obj2);// 输出 true 由于经过赋值的运算,obj1和obj2引用的都是相同的
    

    代码

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

    var str = getIntv("2016-01-08");
    console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
    

    答:

     function getIntv(time){
        var t1=Date.now();
        var t2=Date.parse(time);
        var num=t2-t1;
        var result=("距除夕还有"+Math.floor(num/(1000*60*60*24))+"天"+Math.floor((num%(1000*60*60*24))/(1000*60*60))+"小时"+Math.floor((num%(1000*60*60))/(1000*60))+"分"+Math.floor((num%(1000*60))/1000)+"秒");
        return result;
                    }
    
    • 把数字日期改成中文日期
    var str = getChsDate('2015-01-08');
    console.log(str); // 二零一五年一月八日
    

    答:

      function getChsDate(time){
        var d = new Date(time);
        var year=d.getFullYear();
        var month=d.getMonth();
        var date=d.getDate();
        var Chs=["零","一","二","三","四","五","六","七","八","九","十"];
        var Chsyear=Chs[Math.floor(year/1000)]+Chs[Math.floor((year%1000)/100)]+Chs[Math.floor((year%100)/10)]+Chs[year%10];
        var Chsmonth;
        if(month<=9){
          Chsmonth=Chs[month+1];
        }
        if(month>9){
          Chsmonth=Chs[10]+Chs[month%9];
        }
           var Chsdate;
         if(date<=10){
           Chsdate=Chs[date];
         }
        if(date>10 ){
          if(date==20){
          Chsdate=Chs[2]+Chs[10];
        }
        
          if(date<20){Chsdate=Chs[10]+Chs[date%10];
               }
          if(date>20){
            if(date==30){
          Chsdate=Chs[3]+Chs[10];
      }
            if(date==31){
          Chsdate=Chs[3]+Chs[10]+Chs[1];
      }
            if(date<30){
          Chsdate=Chs[2]+Chs[10]+Chs[date%10];}
         }
        }
         var result=Chsyear+"年"+Chsmonth+"月"+Chsdate+"日";
        return result;
      }
    
    • 写一个函数获取n天前的日期
    var lastWeek = getLastNDays(7); // ‘2016-01-08’
    var lastMonth = getLastNDays(30); //'2015-12-15'
    

    答:

     function getLastNDays(date){
        var d=date*1000*60*60*24;
        var b=Date.now()-d;
       var last=new Date(b);
        result=last.getFullYear()+"-"+last.getMonth()+"-"+last.getDate();
        return result;
      }
    
    • 完善如下代码,用于获取执行时间如
    var Runtime = (function(){ //code here ... var obj = { start: function(){ //code here ..., 当前时间 }, end: function(){ //code here ... 结束时间 }, get: function(){ //code here ... 获取执行时间 } };return obj;}());Runtime.start();//todo somethintRuntime.end();console.log( Runtime.get() );
    

    答:

    var Runtime = (function(){
      var startTime, endTime;
     var obj = {
     start: function(){
     startTime = Date.now();return startTime;
     }, 
    end: function(){ 
    endTime = Date.now(); return endTime;
     }, 
    get: function(){ 
    return endTime - startTime + "ms";
     } }; 
    return obj;}());
    Runtime.start();//todo 
    somethintRuntime.end();
    console.log( Runtime.get() );
    
    • 楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现
      答:
    function method(num){ 
    var res = 0;
     if(num == 1){ 
    res = 1; } 
    else if( 
    num == 2){
     res = 2; } 
    else{ 
    res = method(num-2)+method(num-1); 
    }
     return res; }
    
    • 写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、json对象中的任意项
     function jsonCopy(json) {
     var newJson = {}
     for (var key in json) {
     if (typeof json[key] === 'object') {
     newJson[key] = jsonCopy(json[key];)
     }else {
    newJson[key] = json[key;]
     } }
     return newJson;
     }
     var json = {
     "name": "skylun",
     "age": 32,
    'is_marry':true,
     "other": {
     "job": "coder",
     "city": "hangzhou"
     }
     }
     var newJson = jsonCopy(json);
     console.log(newJson);
    

    相关文章

      网友评论

          本文标题:JS中的时间,日期

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