Date和引用類型

1. 基礎類型有哪些?復雜類型有哪些?有什么特征?

- 基礎類型:number,string,boolean,null,undefined;

- 復雜類型: 對象;數組;函數,正則;

- 基礎類型特征:指的是保存在棧內存中的簡單數據段;

-復雜類型的特征:指的是那些保存在堆內存中的對象,變量中保存的實際上只是一個指針,這個指針執行內存中的另一個位置,由該位置保存對象;

2. 如下代碼的輸出? 為什么?

0_1481639634771_QQ截圖20161213223342.jpg
console.log(obj1 == obj2);//false,此為比較語句,obj1和obj2是指向不同地址的2個變量。

console.log(obj1 = obj2);//{a:1, b:2},此為賦值語句,將obj2賦值給obj1,實際上也就是將obj2的地址賦值給obj1。

console.log(obj1 == obj2);//true,此為比較語句,由于經過賦值,obj1和obj2此時已經指向同一個地址。

代碼

1. 寫一個函數getIntv,獲取從當前時間到指定日期的間隔時間

0_1481643031197_QQ截圖20161213232846.jpg

2. 把數字日期改成中文日期

0_1481787715528_QQ截圖20161215154139.jpg

3. 寫一個函數獲取n天前的日期

0_1481788457633_QQ截圖20161215155357.jpg

4. 完善如下代碼,用于獲取執行時間如:

0_1481789224894_QQ截圖20161215160648.jpg

5. 樓梯有20級,每次走1級或是2級,從底走到頂一共有多少種走法?用代碼(遞歸)實現

0_1481792663337_QQ截圖20161215170410.jpg
假設從底走到第n級的走法有f(n)種, 走到第n級 有兩個方法, 一個是從第(n-1)級走1步, 
 另一個是從第(n- 2)級走2步, 前者有f(n-1)種方法,  
 后者有f(n-2)種方法, 所 以f(n)=f(n-1)+f(n-2), 另外f(0)=1, f(1)=1 

6.寫一個json對象深拷貝的方法,json對象可以多層嵌套,值可以是字符串、數字、布爾、json對象中的任意項(PS:嘗試另外一種方法 var obj2 = JSON.parse( JSON.stringify(obj1) )

var obj1 = {
a: "hello",
b: {
     a: "world",
     b: 21
   },
c: ["Bob", "Tom", "Jenny"],
d: function() {
    alert("hello world");
 }
};

function copy(obj){
    var obj2=JSON.parse(JSON.stringify(obj));
    //先把obj指向的對象轉化為字符串,此時的obj指向的對象不變,再把obj字符串轉化為一個對象,這個對象和obj指向的對象不是同一個對象
    return obj2
}


var re=copy(obj1);


//方法二

function copy2(obj,c){
    var c =c||{};
    for(var key in obj){
         if(typeof obj[key]==='object'){
            c[key]=(obj[key].constructor===Array)?[]:{};
            copy2(obj[key],c[key]);

         }else{
            c[key]=obj[key];
         }
        
    }
    return  c
}

var re2=copy2(obj1);

版權歸饑人谷--楠柒所有如有轉載請注明出處謝謝

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容