时间对象,引用类型

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

#####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;
}

你可能感兴趣的:(时间对象,引用类型)