首页 / 知识
JS的时间对象与引用类型
2023-04-11 15:12:00
基础类型有哪些?复杂类型有哪些?有什么特征?
基础类型:String类型、Null类型、Number类型、Undefined类型、Boolean类型
复杂类型:Object类型
作用:
String类型:String是Unicode字符组成的序列,俗称字符串,可以用双引号或者单引号表示,没有区别,匹配即可
Null类型:Null类型只有一个值:null,表示空指针,也就是不存在的东西
Number类型:JavaScript的数字类型和其它语言有所不同,没有整型和浮点数的区别,统一都是Number类型,可以表示十进制、八进制、十六进制
Undefined类型:Undefined类型也只有一个值undefined,表示变量只被声明,没有被初始化,也就是有这个指针,但是这个指针没有指向任何空间
Boolean类型:Boolean有两个值:1.true2.false
Object类型:对象(object)是JavaScript的核心概念,也是最重要的数据类型。JavaScript的所有数据都可以被视为对象,这也是我们常说的一切皆为对象。
如下代码的输出?为什么?
varobj1={a:1,b:2};
varobj2={a:1,b:2};
console.log(obj1==obj2);//false,由于obj1与obj2所储存的位置不同,所以false。
console.log(obj1=obj2);//obj2赋值给obj1输出Object{a=1,b=2}内容。
console.log(obj1==obj2);//把obj2赋值给obj1,所以obj2与obj1存储的位置是一样的,所以为true。
代码
写一个函数getIntv,获取从当前时间到指定日期的间隔时间。
varstr=getIntv("2016-01-08");
console.log(str);//距除夕还有20天15小时20分10秒
代码:
varstr=getIntv("2017-01-27");
functiongetIntv(time){
varend=newDate(time);
varnow=newDate();
vartimer=end-now;
varday=Math.floor(timer/(1000606024));
vartimer1=timer%(1000606024)
varhour=Math.floor(timer1/(10006060));
vartimer2=timer1%(10006060);
varmin=Math.floor(timer2/(100060));
vartimer3=timer2%(100060);
varsec=Math.floor(timer3/1000);
return("距"+time+"还有"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒")
}
console.log(str);//距2017-01-27还有20天15小时20分10秒
把数字日期改成中文日期,如:
varstr=getChsDate('2015-01-08');
console.log(str);//二零一五年一月八日
代码:
方法一:
varstr=getChsDate('2015-01-08');
functiongetChsDate(time){
time=time.replace(/-/g,'');
vararr=[]
for(i=0;i<time.length;i++){
switch(time[i]){
case'0':arr.push('零');break;
case'1':arr.push('一');break;
case'2':arr.push('二');break;
case'3':arr.push('三');break;
case'4':arr.push('四');break;
case'5':arr.push('五');break;
case'6':arr.push('六');break;
case'7':arr.push('七');break;
case'8':arr.push('八');break;
case'9':arr.push('九');break;
}
}
console.log(time);
arr.splice(4,0,'年');
arr.splice(7,0,'月');
arr.splice(10,0,'日');
arr=arr.join('');
returnarr;
}//这种方法有一定缺陷,比如'2016-02-28',输出'二零一六年零二月二八日',读起来很别扭
console.log(str);//二零一五年一月八日
方法二:
functiongetChsDate(date){
varnewDate=date.split("-"),
year=newDate[0],
month=newDate[1],
day=newDate[2];
vardict={"0":"零","1":"一","2":"二","3":"三","4":"四","5":"五","6":"六","7":"七","8":"八","9":"九","10":"十","11":"十一","12":"十二","13":"十三","14":"十四","15":"十五","16":"十六","17":"十七","18":"十八","19":"十九","20":"二十","21":"二十一","22":"二十二","23":"二十三","24":"二十四","25":"二十五","26":"二十六","27":"二十七","28":"二十八","29":"二十九","30":"三十","31":"三十一"};
returndict[year[0]]+dict[year[1]]+dict[year[2]]+dict[year[3]]+'年'+dict[Number(month)]+'月'+dict[Number(day)]+'日';
};
getChsDate('2015-01-08');//"二零一五年一月八日"
写一个函数获取n天前的日期:
varlastWeek=getLastNDays(7);//‘2016-01-08’
varlastMonth=getLastNDays(30);//'2015-12-15'
代码:
varlastWeek=getLastNDays(7);//‘2016-01-08’
varlastMonth=getLastNDays(30);//'2015-12-15'
functiongetLastNDays(dater){
varnow=Date.now();
vartimer=dater2460601000;
varpast=newDate(now-timer);
varyear=past.getFullYear();
varmonth=past.getMonth()+1;//月份从0开始算;
varday=past.getDate();
returnyear+'-'+month+'-'+day;
}
console.log(lastWeek);
console.log(lastMonth);
完善如下代码,如:
varRuntime=(function(){
//codehere...
return{
start:function(){
//codehere...
},
end:function(){
//codehere...
},
get:function(){
//codehere...
}
};
}());
Runtime.start();
//todosomethint
Runtime.end();
console.log(Runtime.get());
代码:
varRuntime=(function(){
vartime1;
vartime2;
return{
start:function(){
time1=Date.now();
},
end:function(){
time2=Date.now();
},
get:function(){
return(time2-time1);
}
};
}());
Runtime.start();
for(vari=0;i<100;i++){
console.log(1);//输出100次1
}
Runtime.end();
console.log(Runtime.get());//运行了22ms
楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现
functionfn(num){
if(num==0||num==1){
return1;
}
else{
returnfn(num-1)+fn(num-2);
}
}
console.log(fn(200));
写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、json对象中的任意项
varjson={
"name":"yahoo",
"age":"14",
"sex":"man",
"address":
{
"streetAddress":"212ndStreet",
"city":"NewYork",
"state":"NY",
"postalCode":"10021"
}
}
functionJSON(arr){
varnewjson={};
for(keyinarr){
if(typeofarr[key]=="object"){
newjson[key]=JSON(arr[key]);
}
else{
newjson[key]=arr[key];
}
}
returnnewjson;
}
console.log(JSON(json))
写一个数组深拷贝的方法,数组里的值可以是字符串、数字、布尔、数组中的任意项目
vararr=[1,"2",3,[1,2,3,4],true]
functionJSON(arr){
varnewarr=[];
for(keyinarr){
if(typeofarr[key]=='Array'){
newarr[key]=JSON(arr[key]);
}
else{
newarr[key]=arr[key];
}
}
returnnewarr;
}
console.log(JSON(arr))
写一个深拷贝的方法,拷贝对象以及内部嵌套的值可以是字符串、数字、布尔、数组、json对象中的任意项
varO={
name:"yahoo",
age:14,
other:[1,2,true,"yahoo",3],
man:{
"man1":"woman",
"man2":"man2"
},
aid:true,
address:
{
streetAddress:"212ndStreet",
city:"NewYork",
state:"NY",
postalCode:"10021"
}
}
functionJOSN(O){
varnewarr={};
for(keyinO){
if(typeofO[key]==='Array'){
newarr[key]=JOSN(O[key]);
}
else{
newarr[key]=O[key];
}
}
returnnewarr;
}
console.log(JOSN(O))
本文转载自中文网 |
最新内容
相关内容
python如何读取列表中元素的位置?
python如何读取列表中元素的位置?,位置,数据,异常,培训,字符串,元素,索引,方法,示例,结果,python读取列表中元素位置的方法:1、使用index()方python中获取路径的三种方法
python中获取路径的三种方法,工作,代码,情况,培训,下来,路径,文件,也就是,桌面,目录,python中获取路径总结下来分为三种情况:1、获取工作目录python如何调用另一个文件夹中的内
python如何调用另一个文件夹中的内容?,系统,培训,文件,模块,内容,路径,函数,所在,前缀,语句,python中调用另外一个文件夹中的内容:1、同一文件python怎么找出所有的数字?
python怎么找出所有的数字?,数字,培训,代码,小数点,小数,字符串,整数,表达式,含义,思路,python中获取字符串中所有数字的方法:1、使用正则表达Python怎么取出列表中的相邻元素?
Python怎么取出列表中的相邻元素?,代码,异常,培训,元素,指针,序列,对象,表示,语句,函数,1、python的迭代器。iter()能把一个序列生成为一个和如何在python代码中指定保存的文件
如何在python代码中指定保存的文件格式,代码,培训,文件格式,格式,二进制文件,文件,后缀,以上,方法,更多,python指定保存文件格式的方法:1、保Python如何复制文件中的内容
Python如何复制文件中的内容,盘中,数据,培训,文件,内容,方法,文件夹,路径,源文件,文件名,python复制文件中内容的方法:1、使用shutil.copyfile实数是不是python的数据类型?
实数是不是python的数据类型?,数字,标准,培训,实数,数据类型,数轴,复数,有限小数,无理数,虚数,实数是python的数据类型。实数,是有理数和无理python如何查看所有变量
python如何查看所有变量,名称,培训,模块,变量,成员,函数,全部,所指,字符串,结尾,python中可以使用dir()函数查看所有变量。通过dir()函数,我们python脚本中有乱码怎么解决
python脚本中有乱码怎么解决,代码,培训,脚本,乱码,中文,下面,英语系,源文件,语句,源码,有时候,在Python脚本里有中文的时候,会报下面的错误:Non-python如何获取程序执行时间?
python如何获取程序执行时间?,代码,培训,标准,程序,方法,中间,使用方法,以上,手册,更多,python获取程序执行时间的方法:1、使用time.clock()方linux下怎么查看python的包
linux下怎么查看python的包,软件,培训,工具,管理,命令,格式,详细信息,下面,以上,参数,linux中可以使用piplist命令查看安装的python包。pip是