>  기사  >  웹 프론트엔드  >  JS 시간 객체 및 재귀 문제 정보

JS 시간 객체 및 재귀 문제 정보

jacklove
jacklove원래의
2018-05-21 11:30:241349검색

JS 시간 객체와 재귀는 학습 중에 자주 접하게 되는데, 이 글에서는 이에 대해 설명하겠습니다.

기본 유형은 무엇인가요? 복합 유형에는 어떤 것이 있나요? 특징은 무엇입니까?
일반적으로 JS의 기본 유형은 주로 스택 메모리에 저장된 단순 데이터 세그먼트를 참조하는 5가지 유형으로 구분됩니다.

Number: number

Boolean 값: true, false

String: string

null: Control; needle

underfined: 포인터는 있지만 값이 할당되지 않습니다

복합 유형은 객체일 뿐입니다. 배열, 객체, 함수, 정규식을 포함하며 힙 메모리에 저장된 객체를 참조하는 것은 실제로 변수에 저장되는 것입니다. 포인터(좌표), 이 포인터는 객체가 저장되는 메모리의 다른 위치를 실행합니다.

다음 코드의 출력은 무엇입니까?

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와 같은지 다시 확인합니다. 두 개체가 서로 다른 위치에 있으므로 결과는 다음과 같습니다. falseObject {a: 1, b: 2}true

Code

현재 시간부터 지정된 날짜까지의 간격을 가져오는 함수 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)

구현}//계단 걷기 방법은 (한 걸음 후 + 다음 걷기 방법) + (두 걸음 후 + 다음 걷기 방법) // 한 걸음 걷기와 동일합니다. 또는 두 단계를 수행하는 것은 조건입니다 console.log(fn(200));                                                                          을 사용하여           '를 통해 ' ' s '를 통해        s 't ‐ ‐ ‐ ​ ​​ ​ ​ ​객체의 모든 항목

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={};
  }
 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);

이 기사에서 논의할 것입니다

관련 권장 사항:

innerText와 innerHTML의 차이점은 무엇인가요? 돔 객체?


JS에 대한 몇 가지 기본적인 질문


프론트 엔드 js로 require.js를 모듈화하는 방법

위 내용은 JS 시간 객체 및 재귀 문제 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.