JS 時間オブジェクトと再帰の問題について

jacklove
リリース: 2018-05-21 11:30:24
オリジナル
1367 人が閲覧しました

JS の時間オブジェクトと再帰は学習中によく出てくるので、この記事で解説します。

基本的なタイプは何ですか?複合型とは何ですか?特徴は何ですか?
一般的に、JS の基本的な型は主に 5 つの型に分けられます。これらは、スタック メモリに格納される単純なデータ セグメントを指します。針

アンダーファインド: ポインタはありますが、値が割り当てられていません

複雑な型はオブジェクトのみです: 配列、オブジェクト、関数、正規表現を含み、ヒープ メモリに保存されているオブジェクトを参照します。ポインタ (座標) 。このポインタは、オブジェクトが保存されているメモリ内の別の場所を実行します。

次のコードの出力はなぜですか?

var obj1 = {a:1, b:2};var obj2 = {a:1, b:2};console.log(obj1 == obj2); /obj1 が obj2console.log(obj1 = obj2) に等しいかどうかを判断 //obj2 を obj1console.log(obj1 == obj2) に割り当てます。 //obj1 が obj2 に等しいかどうかを再度判断します。 2 つのオブジェクトは異なる位置にあるため、結果は次のようになります: falseObject {a: 1, b: 2}true

コード

現在時刻から指定された日付までの間隔を取得する関数 getIntv を作成します

function getIntv(haha){
  a= Date.now();
  b= Date.parse(haha);
  c= b-a;
  d= Math.floor(c/(1000*60*60*24));
  e= Math.floor((c-d*1000*60*60*24)/(1000*60*60));
  f= Math.floor((c-d*1000*60*60*24-e*1000*60*60)/(1000*60));
  g= Math.floor((c-d*1000*60*60*24-e*1000*60*60-f*1000*60)/1000);  return ("距除夕还有"+d+"天"+e+"小时"+f+"分钟"+g+"秒")
}var str = getIntv("2017-01-27");console.log(str);
ログイン後にコピー

デジタル日付を中国の日付に変更します

function getChsDate(lala){
  num=['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六','十七','十八','十九','二十','二十一','二十二','二十三','二十四','二十五','二十六','二十七','二十八','二十九','三十','三十一']  var damo = lala.split('-')     
  var b = damo[0].split('')    
 for( var e =0 ;e< damo.length; e++) { 
  for(var i = 0 ;i< b.length ; i++) {  
    for(var f = 0 ;f< num.length ;f++) {   
      if( damo[e] == f.toString() ) {
        damo[e] = num[f]
      }      if( b[i] == f.toString() ) {
        b[i] = num[f]
      }
    }
  }
 }  
  return ( b.join("")+"年"+damo[1]+"月"+damo[2]+"日" )
}var str = getChsDate("2015-11-31")console.log(str)
ログイン後にコピー

n 日前の日付を取得する関数を作成します

function getLastNDays(lala) {  var damo = new Date().getTime()-(lala*1000*60*60*24);  var d2 = new Date(damo)  var ad =(d2.getMonth()+1)  console.log(d2.getFullYear()+&#39;-&#39;+ad+&#39;-&#39;+d2.getDate())   
}
 getLastNDays(40);
ログイン後にコピー

次のようなコードを完成させて、実行時間を取得します:

var Runtime = (function(){    var a,b,c;    return {        start: function(){
             a = Date.now();   //获取现在的时间
             console.log(a);
        },        end: function(){
             b = Date.now();    //获取执行后的时间
             console.log(b);
        },        get: function(){ 
             c = b - a;              //两者相减得出执行代码的时间。            
             return (c+"毫秒");        //单位为毫秒
        }
    };
}());
Runtime.start();             
for(var i = 0; i<60000 ;i++ ){         
                                   //这里计算i循环60000次所需要的时间}
Runtime.end();console.log(Runtime.get());
ログイン後にコピー

毎回、階段は 200 段あります。 1 つまたは 2 つのレベルを取得します。法則の下から上へ行く方法は何通りありますか?コード (再帰) を使用して

function fn(sum){  if(sum===1){    return 1;
  }  if(sum===2){    return 2;
  }  return fn(sum-1)+fn(sum-2)
ログイン後にコピー

}// 階段の歩き方は (1 歩歩いた後 + その後の歩き方) + (2 歩歩いた後 + 次の歩き方) // 1 歩歩くConsole.log (Fn (200)); // 値が大きすぎるのでスタックします

JSON オブジェクトを複数ネストするメソッドを作成します。値は文字列、数値、ブール値、JSON、JSON オブジェクト内の任意の項目です

var obj={  sex:18,  vala:"hello",  arr:{    name:"damo"
  }
};function objcopy(obj){  var newobj={};  for(var i in obj){    //遍历对象obj
    if(typeof obj[i]=== "object"){       //如果对象的值为对象
      newobj[i] = objcopy(obj[i])    //将对象赋值为新对象
    }else{
      newobj[i]=obj[i];
    }
  }  return newobj;
}var newobj= objcopy(obj);console.log(newobj)                 //一个新的对象与原对象无关系
ログイン後にコピー

配列のディープ コピー メソッドを記述します。配列内の値は文字列、数値、ブール値、または任意の項目です。配列内で

var arr=[18, "hello", [2,3,5,6,9],true,];function objcopy(arr){  var newarr=[];  for(var i in arr){    //遍历数组arr
    if( arr[i] instanceof Array){    //条件:如果对象的值为数组
      newarr[i] = objcopy(arr[i])    //将数组内容赋值为新数组
    }else{
      newarr[i]=arr[i];
    }
  }  return newarr;
}var newarr= objcopy(arr);console.log(newarr)                 //一个新的数组与原数组无关系
ログイン後にコピー

オブジェクトと内部ネストをコピーするディープ コピー メソッドを作成します。値には、文字列、数値、ブール値、配列、または JSON オブジェクト内の任意の項目を指定できます

function   arrcopy(num){   var lala;  if(num instanceof Array){
    lala = [];
  } else{
    lala={};
  }
ログイン後にコピー
rree
この記事ではそれについて説明します

関連する推奨事項:

DOMオブジェクトのinnerTextとinnerHTMLの違いは何ですか?

JSに関するいくつかの基本的な質問


require.jsをフロントエンドjsでモジュール化する方法

以上がJS 時間オブジェクトと再帰の問題についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!