Heim > Web-Frontend > js-Tutorial > Wir stellen einen kleinen Fall für den Einstieg in JS vor

Wir stellen einen kleinen Fall für den Einstieg in JS vor

jacklove
Freigeben: 2018-06-15 15:23:15
Original
1590 Leute haben es durchsucht

Welcher Tag zählt?

Überprüfen Sie, ob es sich bei dem Jahr um ein Schaltjahr handelt.
Ermitteln Sie die Anzahl der Tage in jedem Monat 3. Ermitteln Sie die Anzahl der Tage im aktuellen Monat entsprechend dem Monat.
4. Die Anzahl der Tage, die Sie durch Addition von 3 zum Datum erhalten, ist in Ordnung.

function isLeapYr(yr) {
    //判断闰年
    return (yr % 4 === 0 && yr % 100 !== 0) || (yr % 100 === 0 && yr % 400 === 0);
}function count(y, m, d) {
    var mdays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];    var mSum = 0;    var sum = 0;    //如果是闰年的话,那么2月份就应该有29天
    isLeapYr(y) ? mdays[1] = 29 : mdays[1];    //计算该月份之前的总天数,比如m=3,那么就计算1和2月的总天数
    for (var i = 0; i < m - 1; i++) {
        mSum += mdays[i];
    }    //加上当月天数
    sum = mSum + d;    return sum;
}
Nach dem Login kopieren
 //弹出年、月、日输入框,声明年鱼儿,并赋值
    var y =parseInt(prompt("请输入你的出生年份"));    var m = parseInt(prompt("请输入你的出生月份"));    var d =parseInt(prompt("请输入你的出生日期"));    //月
    //求各月份数字之和
    var getMonth=new Array(31,28,31,30,31,30,31,31,30,31,30);    var sum1=0,i;    for(i=0;i<m-1;i++){
        sum1+=getMonth[i]
        }    //年
    //判断年是否为闰年,是且大于2月份加一
        if(( y%400 ==0||(y % 4 == 0&& y%100 !=0))&& m > 2){
            sum=sum1 + d +1;
            document.write("该天为一年中的第"+sum+"天");
        }else{
            sum=sum1+d;
            document.write("该天为一年中的第"+sum+"天");
        }
Nach dem Login kopieren

Verwenden Sie die Zeitfunktion zur Berechnung

var now = new Date();//输入日期以今日为例var NewYearsDay = new Date(now.getFullYear(), 0, 0, 0, 0, 0);//该年第一天console.log((now.getTime()-NewYearsDay.getTime())/86400000>>>0)//算出两者的时间戳之差就是时间差的微秒数  再用时间差除以天的微秒数86400000 取整 就是第几天
Nach dem Login kopieren
var endDate = new Date(y, m-1, d),
    startDate = new Date(y, 0, 0),
    days = (endDate - startDate) / 1000 / 60 / 60 / 24;
document.write("该天为一年中的第"+ days +"天");
Nach dem Login kopieren

JS implementiert Fakultät

//while循环实现function calNum(n) {
    var product = 1;    while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2
        product *= n;
        n--;
    }    return product;
}
console.log(calNum(5))
Nach dem Login kopieren
//for循环实现
   function calNum(n){
        var a = 1, str = &#39;1*&#39;;        for (var i = 2; i <= n; i++) {            str += i + &#39;*&#39;;
            a *= i;
        }        str = str.substr(0,str.length-1);        return str + &#39;=&#39; +a;
    }
    console.log(calNum(5));
Nach dem Login kopieren

Primzahlen beurteilen

var prime = function(len){
    var i,j;
    var arr = [];  for(i = 1; i < len; i++){
    for(j=2; j < i; j++){  
      if(i%j === 0) {
         break;
      }
    }    if(i <= j && i !=1){
      arr.push(i);
    }
  }  return arr;
};console.log(prime(100));
Nach dem Login kopieren

JS-Fibonacci-Sequenzsummierung

Rekursiver Algorithmus

Die Zeitkomplexität ist O(2^n), die Raumkomplexität ist O(n)

 function recurFib(n) {
  if (n < 2) {    return n;
  }  else {    return recurFib(n-1) + recurFib(n-2);
  }
 }
  alert(recurFib(10));//将显示55
Nach dem Login kopieren

Dynamische Programmierung

Die Zeitkomplexität ist O(n) , die Raumkomplexität ist O(n)

  function dynFib(n) {     var res = [1,1];  
    if (n == 1 || n == 2) {      return 1;
    }      for (var i = 2; i < n; i++) {        val[i] = val[i-1] + val[i-2];
      }      return val[n-1];
  }
  alert(dynFib(10));//将显示55
Nach dem Login kopieren

Iterative Methode

Die Zeitkomplexität ist O(n), die Raumkomplexität ist O(1)

 function iterFib(n){
  var last=1;  var nextlast=1;  var result=1;  for(var i=2;i<n;i++){
    result=last+nextlast;
    nextlast=last;
    last=result;
  }  return result;
 }
 alert(iterFib(10));//将显示55
Nach dem Login kopieren

Primzahlen

function foo(n){  
  var a=[],state=0;  
  for(var i=2;i<n;i++){  
    var sqrt_i = Math.sqrt(i);  
    if(i%sqrt_i===0){  
      continue;  
    }  
    for(var j=2;j<sqrt_i;j++){  
      if(i%j===0){  
        state=1;  
        break;  
      }else{  
        state=0;  
      }  
    }  
   if(state===0){  
     a.push(i);  
   }  
  }  
  console.log(a);  
}  
foo(100)
Nach dem Login kopieren
In diesem Artikel wird ein kleiner Fall für den Einstieg in JS erläutert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Dynamische Anzeige des Prozesses durch js

ParticlesJS-Nutzungseinführungsbezogener Inhalt

Detaillierte Analyse der Operatoren i++ und ++i in JS


Das obige ist der detaillierte Inhalt vonWir stellen einen kleinen Fall für den Einstieg in JS vor. 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