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()+'-'+ad+'-'+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로 require.js를 모듈화하는 방법
위 내용은 JS 시간 객체 및 재귀 문제 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!