时间对象、引用类型

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

答:

  • 基础类型:包含数值、字符串、布尔值、null、undefined是保存在栈内存中的简单的数据段,容量有限,只能保存简单数据。
  • 复杂类型:包含对象、函数、数组、正则保存在内存中的对象,就像在一块荒地上划分了一块地方存储,变量值保存了这个地方的指针(坐标),指向存储的内存。
  • 特征:基础类型可以按照变量值进行赋值,而复杂类型得通过指针来赋值的,当变量相同时指向的是同一个对象,对象改变的话两个变量都会改变。
如下代码的输出? 为什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);//此时obj1与obj2指针指向的对象不同,所以false
console.log(obj1 = obj2);//将obj2的指针赋值给obj1,返回的是obj1的对象
console.log(obj1 == obj2);//它俩指向同一个对象,所以ture
时间对象、引用类型_第1张图片
写一个函数getIntv,获取从当前时间到指定日期的间隔时间
function addClass(obj,val) {
    var classArr = obj.calssName.split(" ");
    for(var i=0;i
把数字日期改成中文日期
    var str = getChsDate('2015-01-08');
    function getChsDate(str){
        var ChsDate =[ '零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一'];
        var TimesStr = str.split("-")
        var year = TimesStr[0]
        var mouth = TimesStr[1]
        var day = TimesStr[2]
        return ChsDate[year[0]]+ChsDate[year[1]]+ChsDate[year[2]]+ChsDate[year[3]] + "年" +ChsDate[Math.abs(mouth)]+"月" + ChsDate[Math.abs(day)]+"日"
    }
    console.log(str);
写一个函数获取n天前的日期
var lastWeek = getLastNDays(7); // ‘2016-01-08’
var lastMonth = getLastNDays(30); //'2015-12-15'

function getLastNDays(n){
var time = "";
var a = new Date(Date.now()-3600241000*n);
var year =a.getFullYear();
var month =a.getMonth()+1;
var day = a.getDate();
time = year+"-"+month+"-"+day;
return time;
}
getLastNDays(7);


#####完善如下代码,用于获取执行时间如:
var Runtime = (function(){
    //code here ...
    var obj = {
        start: function(){
            presentTime = Date.now();
        },
        end: function(){
            endTime = Date.now();
        },
        get: function(){
            return endTime-presentTime;

        }
    };
    return obj;
}());
Runtime.start();
for (var i=0;i<1000;i++)
console.log(i)
Runtime.end();
console.log(  Runtime.get() );

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

function fn(n){
if (n === 1){
return 1
}else if(n === 2){
return 2
}else{
return fn(n-1)+fn(n-2)
}
}


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

var obj ={
name:"syc",
sex:"nan",
age:23,
like:{
"game":"dota",
}
}
function objCopy(obj){
var obj1={};
for( key in obj){
if (typeof obj[key]==="object"){
obj1[key] = objCopy(obj[key])
}
else{
obj1[key]=obj[key]
}
}
return obj1;
}
objCopy(obj)

**本文版权归本人和饥人谷所有,转载请注明来源。**

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