Heim > Web-Frontend > js-Tutorial > Hauptteil

Über JS-Zeitobjekt- und Rekursionsprobleme

jacklove
Freigeben: 2018-05-21 11:30:24
Original
1364 Leute haben es durchsucht

JS-Zeitobjekte und Rekursion werden beim Lernen häufig angetroffen, und dieser Artikel wird sie erklären.

Was sind die Grundtypen? Was sind die komplexen Typen? Was sind die Merkmale?
Im Allgemeinen sind die Grundtypen von JS hauptsächlich in 5 Typen unterteilt, die sich auf einfache Datensegmente beziehen, die im Stapelspeicher gespeichert sind;

Zahl: Zahl

Boolesche Werte: wahr, falsch

String: string

null: Kontrollzeiger

unterdefiniert: Es gibt einen Zeiger, aber kein Wert zugewiesen

Komplexe Typen haben nur Objekte: einschließlich Arrays, Objekte, Funktionen, Regulär bezieht sich auf das im Heap-Speicher gespeicherte Objekt. In der Variablen ist eigentlich nur ein Zeiger (Koordinate) ausgeführt, und das Objekt wird an dieser Stelle gespeichert.

Die Ausgabe des folgenden Codes? Warum?

var obj1 = {a:1, b:2};var obj2 = {a:1, b:2};console.log (obj1 == obj2); //Bestimmen Sie, ob obj1 gleich obj2console.log(obj1 = obj2); //Bestimmen Sie erneut, ob obj1 gleich obj2 ist der Eigenschaften komplexer Typen. Die beiden Objekte befinden sich an unterschiedlichen Positionen, daher ist das Ergebnis: falseObject {a: 1, b: 2}true

Code

Schreiben Sie eine Funktion getIntv, um die Zeit von der aktuellen Zeit bis zum zu erhalten. Geben Sie das Intervall zwischen Datumsangaben an.

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);
Nach dem Login kopieren

Ändern Sie das digitale Datum in ein chinesisches Datum.

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)
Nach dem Login kopieren

Schreiben Sie eine Funktion, um das Datum vor n Tagen abzurufen

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);
Nach dem Login kopieren

Vervollständigen Sie den folgenden Code, um die Ausführung zu erhalten. Die Zeit ist wie folgt:

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());
Nach dem Login kopieren

Es gibt 200 Stufen in der Treppe. Jede Stufe besteht aus 1 oder 2 Stufen von unten nach oben? Verwenden Sie Code (rekursiv), um

function fn(sum){  if(sum===1){    return 1;
  }  if(sum===2){    return 2;
  }  return fn(sum-1)+fn(sum-2)
Nach dem Login kopieren

} zu implementieren. // Die Gehmethode der Treppe entspricht (nach einem Schritt + der anschließenden Gehmethode) + (nach zwei Schritten + der anschließenden Gehmethode) / / Einen Schritt machen oder zwei Schritte gehen sind Bedingungen Console.log (Fn (200)); // Der Wert ist zu groß und bleibt hängen

Schreiben Sie eine Methode zum tiefen Kopieren eines JSON Objekt. Es kann eine Zeichenfolge, eine Zahl, ein Boolescher Wert oder ein beliebiges Element im JSON-Objekt sein.

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)                 //一个新的对象与原对象无关系
Nach dem Login kopieren

Schreiben Sie eine Methode zum tiefen Kopieren des Arrays. Der Wert im Array kann eine Zeichenfolge, eine Zahl, ein Boolescher Wert oder sein jedes Element im Array

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)                 //一个新的数组与原数组无关系
Nach dem Login kopieren

Schreiben Sie eine Deep-Copy-Methode. Das kopierte Objekt und die internen verschachtelten Werte können Zeichenfolgen, Zahlen, Boolesche Werte, Arrays und beliebige Elemente in JSON-Objekten sein

function   arrcopy(num){   var lala;  if(num instanceof Array){
    lala = [];
  } else{
    lala={};
  }
Nach dem Login kopieren
 for(var key in num){    if(num[key] instanceof Array){
       lala[key] = arrcopy(num[key]);
    }    else{
       lala[key] = num[key];
    }
  }  return lala;
}var lala= arrcopy(arr);
Nach dem Login kopieren

Dieser Artikel wird

Verwandte Empfehlungen:

Was ist der Unterschied zwischen innerText und innerHTML von Dom-Objekten?

Einige grundlegende Fragen zu JS

So modularisieren Sie require.js mit Front-End-js

Das obige ist der detaillierte Inhalt vonÜber JS-Zeitobjekt- und Rekursionsprobleme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!