溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JS的時間對象與引用類型是什么

發(fā)布時間:2022-03-15 10:08:24 來源:億速云 閱讀:141 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“JS的時間對象與引用類型是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JS的時間對象與引用類型是什么”吧!

  基礎(chǔ)類型:String類型、Null類型、Number類型、Undefined類型、Boolean類型

  復(fù)雜類型:Object類型

  作用:

  String類型:String是Unicode字符組成的序列,俗稱字符串,可以用雙引號或者單引號表示,沒有區(qū)別,匹配即可

  Null類型:Null類型只有一個值:null,表示空指針,也就是不存在的東西

  Number類型:JavaScript的數(shù)字類型和其它語言有所不同,沒有整型和浮點數(shù)的區(qū)別,統(tǒng)一都是Number類型,可以表示十進制、八進制、十六進制

  Undefined類型:Undefined類型也只有一個值undefined,表示變量只被聲明,沒有被初始化,也就是有這個指針,但是這個指針沒有指向任何空間

  Boolean類型:Boolean有兩個值:1.true2.false

  Object類型:對象(object)是JavaScript的核心概念,也是最重要的數(shù)據(jù)類型。JavaScript的所有數(shù)據(jù)都可以被視為對象,這也是我們常說的一切皆為對象。

  如下代碼的輸出?為什么?

  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}內(nèi)容。

  console.log(obj1==obj2);//把obj2賦值給obj1,所以obj2與obj1存儲的位置是一樣的,所以為true。

  代碼

  寫一個函數(shù)getIntv,獲取從當(dāng)前時間到指定日期的間隔時間。

  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秒

  把數(shù)字日期改成中文日期,如:

  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');//"二零一五年一月八日"

  寫一個函數(shù)獲取n天前的日期:

  varlastWeek=getLastNDays(7);//&lsquo;2016-01-08&rsquo;

  varlastMonth=getLastNDays(30);//'2015-12-15'

  代碼:

  varlastWeek=getLastNDays(7);//&lsquo;2016-01-08&rsquo;

  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級,從底走到頂一共有多少種走法?用代碼(遞歸)實現(xiàn)

  functionfn(num){

  if(num==0||num==1){

  return1;

  }

  else{

  returnfn(num-1)+fn(num-2);

  }

  }

  console.log(fn(200));

  寫一個json對象深拷貝的方法,json對象可以多層嵌套,值可以是字符串、數(shù)字、布爾、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))

  寫一個數(shù)組深拷貝的方法,數(shù)組里的值可以是字符串、數(shù)字、布爾、數(shù)組中的任意項目

  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))

  寫一個深拷貝的方法,拷貝對象以及內(nèi)部嵌套的值可以是字符串、數(shù)字、布爾、數(shù)組、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))

感謝各位的閱讀,以上就是“JS的時間對象與引用類型是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JS的時間對象與引用類型是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

js
AI