最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

关于JS时间对象和递归问题

来源:动视网 责编:小采 时间:2020-11-27 19:48:26
文档

关于JS时间对象和递归问题

关于JS时间对象和递归问题:JS时间对象和递归在学习中经常会遇到,本篇将对其进行讲解。基础类型有哪些?复杂类型有哪些?有什么特征?一般来说JS的基础类型主要分为5种,指的是保存在栈内存中的简单数据段;数字:number布尔值:true、false字符串:stringnull: 控制针under
推荐度:
导读关于JS时间对象和递归问题:JS时间对象和递归在学习中经常会遇到,本篇将对其进行讲解。基础类型有哪些?复杂类型有哪些?有什么特征?一般来说JS的基础类型主要分为5种,指的是保存在栈内存中的简单数据段;数字:number布尔值:true、false字符串:stringnull: 控制针under


JS时间对象和递归在学习中经常会遇到,本篇将对其进行讲解。

基础类型有哪些?复杂类型有哪些?有什么特征?
一般来说JS的基础类型主要分为5种,指的是保存在栈内存中的简单数据段;

数字:number

布尔值:true、false

字符串:string

null: 控制针

underfined:有指针却未赋值

复杂类型只有object:包括 数组、对象、函数、正则,指的是保存在堆内存中的对象,变量中保存的实际上只是一个指针(坐标),这个指针执行的是内存中的另一个位置,由该位置保存对象。

如下代码的输出? 为什么?

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

代码

写一个函数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)); //数值太大,会卡死

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

本篇对其进行

文档

关于JS时间对象和递归问题

关于JS时间对象和递归问题:JS时间对象和递归在学习中经常会遇到,本篇将对其进行讲解。基础类型有哪些?复杂类型有哪些?有什么特征?一般来说JS的基础类型主要分为5种,指的是保存在栈内存中的简单数据段;数字:number布尔值:true、false字符串:stringnull: 控制针under
推荐度:
标签: js 问题 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top