时间对象,引用类型

1. 基础类型有哪些?复杂类型有哪些?有什么特征?
  • 基础类型:Number, String, Boolean, undefined, null
    特征:基础类型数据直接保存在栈内存中,在做赋值之类的操作时直接对数据本身进行操作,此后各自的修改增删互补相干。
  • 复杂类型:Object, Array, Function, RegExp
    特征:复杂类型的数据保存在堆内存中,复制的时候只是将栈内存中的“地址”赋值过去,当其中一个进行修改时,实际上是通过“地址”修改了公用的数据。
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
console.log(obj1 == obj2); // true obj1,obj2实际上有了相同的“地址”,所以返回true


##代码题:

#####1. 写一个函数 ```getIntv```,获取从当前时间到指定日期的间隔时间
- ```
  function getIntv(str) {
    var newYear = Date.parse('2016-02-07');
    var now = Date.parse(str);
    var t = newYear - now;
    var d = parseInt (t/(1000*3600*24));
    var h = parseInt ((t%(1000*3600*24))/(1000*3600));
    var m = parseInt (((t%(1000*3600*24))%(1000*3600))/(1000*60));
    var s = parseInt ((((t%(1000*3600*24))%(1000*3600))%(1000*60))/1000);
    return ('距离除夕还有' + d + '天' + h + '小时' + m + '分' + m + '秒');
  }
2. 把数字日期改成中文日期
  • function getChsDate(str) {
      var numArr = ['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一'];
      var arr = str.split('-');
      var yearArr = arr[0].split('');
      var y = '';
      for (var i=0; i<yearArr.length; i++) {
        y += numArr[yearArr[i]];
      }
      var m = numArr[parseInt(arr[1])];
      var d = numArr[parseInt(arr[2])];
      return (y + '年' + m + '月' + d + '日');
    }
    

#####3. 写一个函数获取n天前的日期
- ```
  function getLastDays(n) {
    var d1 = Date.now()-(n*24*3600*1000);
    var d2 = new Date(d1);
    var str = d2.toISOString();
    return str.substr(0,10);
  }
4. 完善如下代码,用于获取执行时间如:
  • var Runtime = (function(){
        var start,end;
        var obj = {
            start: function(){
                  start = Date.now();
            },
            end: function(){
                 end = Date.now();
            },
            get: function(){
                 return (end - start)
            }
        };
    return obj;
    }());
    Runtime.start();
    //todo somethint
    Runtime.end();
    console.log(  Runtime.get() );
    

#####5. 楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现
- ```
-
6. 写一个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;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础类型有哪些?复杂类型有哪些?有什么特征?5种简单数据类型(基本数据类型):Undefined、Null、Boo...
    coolheadedY阅读 378评论 0 0
  • 问答 基础类型有哪些?复杂类型有哪些?有什么特征?答:基础类型:数字number字符串string布尔值boole...
    饥人谷_桶饭阅读 338评论 0 0
  • 基础类型有哪些?复杂类型有哪些?有什么特征? 基本类型:指的是保存在栈内存中的简单数据段,包括---数值,字符串,...
    王难道阅读 284评论 0 0
  • 问答 1.基础类型有哪些?复杂类型有哪些?有什么特征? 基础类型:数字、字符串、布尔、undefined、null...
    车万里阅读 322评论 0 0
  • 黑暗中沉默的行走。 无声的步伐,怦怦跳动的心。 你看,血液在体内躁动。 是谁说的沉沉与无趣? 分明,很欢快。 头顶...
    凝箫阅读 229评论 0 0

友情链接更多精彩内容