這篇文章將為大家詳細(xì)講解有關(guān)JS中時間對象與引用類型的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司專注于玉龍企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。玉龍網(wǎng)站建設(shè)公司,為玉龍等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)基礎(chǔ)類型有哪些?復(fù)雜類型有哪些?有什么特征?
基礎(chǔ)類型:String 類型、Null 類型、Number 類型、Undefined類型、Boolean 類型
復(fù)雜類型:Object 類型
作用:
String類型: String是Unicode字符組成的序列,俗稱字符串,可以用雙引號或者單引號表示,沒有區(qū)別,匹配即可
Null類型: Null類型只有一個值:null,表示空指針,也就是不存在的東西
Number類型: JavaScript的數(shù)字類型和其它語言有所不同,沒有整型和浮點(diǎn)數(shù)的區(qū)別,統(tǒng)一都是Number類型,可以表示十進(jìn)制、八進(jìn)制、十六進(jìn)制
Undefined類型: Undefined類型也只有一個值undefined,表示變量只被聲明,沒有被初始化,也就是有這個指針,但是這個指針沒有指向任何空間
Boolean類型: Boolean有兩個值:1.true2.false
Object類型: 對象(object)是JavaScript的核心概念,也是最重要的數(shù)據(jù)類型。JavaScript的所有數(shù)據(jù)都可以被視為對象,這也是我們常說的一切皆為對象。
如下代碼的輸出? 為什么?
var obj1 = {a:1, b:2}; var obj2 = {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)前時間到指定日期的間隔時間。
var str = getIntv("2016-01-08");
console.log(str); // 距除夕還有 20 天 15 小時 20 分 10 秒
代碼:
var str = getIntv("2017-01-27"); function getIntv(time){ var end = new Date(time); var now = new Date(); var timer = end-now; var day = Math.floor(timer/(1000606024)); var timer1 = timer%(1000606024) var hour = Math.floor(timer1/(10006060)); var timer2 = timer1%(10006060); var min = Math.floor(timer2/(100060)); var timer3 = timer2%(100060); var sec = Math.floor(timer3/1000); return ("距"+time+"還有"+day+"天"+hour+"小時"+min+"分鐘"+sec+"秒") } console.log(str); // 距2017-01-27還有 20 天 15 小時 20 分 10 秒
把數(shù)字日期改成中文日期,如:
var str = getChsDate('2015-01-08'); console.log(str); // 二零一五年一月八日
代碼:
方法一:
var str = getChsDate('2015-01-08'); function getChsDate(time){ time = time.replace(/-/g,''); var arr = [] 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(''); return arr; }//這種方法有一定缺陷,比如'2016-02-28',輸出'二零一六年零二月二八日',讀起來很別扭 console.log(str); // 二零一五年一月八日
方法二:
function getChsDate(date){ var newDate =date.split("-"), year = newDate[0], month = newDate[1], day = newDate[2]; var dict ={"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": "三十一"}; return dict[year[0]]+dict[year[1]]+dict[year[2]]+dict[year[3]] + '年' + dict[Number(month)] +'月' + dict[Number(day)] + '日'; }; getChsDate('2015-01-08');//"二零一五年一月八日"
寫一個函數(shù)獲取n天前的日期:
var lastWeek = getLastNDays(7); // ‘2016-01-08’ var lastMonth = getLastNDays(30); //'2015-12-15'
代碼:
var lastWeek = getLastNDays(7); // ‘2016-01-08’ var lastMonth = getLastNDays(30); //'2015-12-15' function getLastNDays(dater){ var now = Date.now(); var timer = dater2460601000; var past = new Date(now - timer); var year = past.getFullYear(); var month = past.getMonth()+1;//月份從0開始算; var day = past.getDate(); return year+'-'+month+'-'+day; } console.log(lastWeek); console.log(lastMonth);
完善如下代碼,如:
var Runtime = (function(){ //code here ... return { start: function(){ //code here ... }, end: function(){ //code here ... }, get: function(){ //code here ... } }; }()); Runtime.start(); //todo somethint Runtime.end(); console.log( Runtime.get() );
代碼:
var Runtime = (function(){ var time1; var time2; return { start: function(){ time1=Date.now(); }, end: function(){ time2=Date.now(); }, get: function(){ return (time2-time1); } }; }()); Runtime.start(); for(var i=0;i<100;i++){ console.log(1);//輸出100次1 } Runtime.end(); console.log( Runtime.get() );//運(yùn)行了22ms
樓梯有200級,每次走1級或是2級,從底走到頂一共有多少種走法?用代碼(遞歸)實現(xiàn)
function fn(num) { if (num==0||num==1) { return 1; } else { return fn(num-1)+fn(num-2); } } console.log(fn(200));
寫一個json對象深拷貝的方法,json對象可以多層嵌套,值可以是字符串、數(shù)字、布爾、json對象中的任意項
var json={ "name":"yahoo", "age":"14", "sex":"man", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" } } function JSON(arr){ var newjson= {}; for(key in arr){ if(typeof arr[key]=="object"){ newjson[key]=JSON(arr[key]); } else{ newjson[key]=arr[key]; } } return newjson; } console.log(JSON(json))
寫一個數(shù)組深拷貝的方法,數(shù)組里的值可以是字符串、數(shù)字、布爾、數(shù)組中的任意項目
var arr=[1,"2",3,[1,2,3,4],true] function JSON(arr){ var newarr=[]; for(key in arr){ if(typeof arr[key] =='Array') { newarr[key]=JSON(arr[key]); } else{ newarr[key]=arr[key]; } } return newarr; } console.log(JSON(arr))
寫一個深拷貝的方法,拷貝對象以及內(nèi)部嵌套的值可以是字符串、數(shù)字、布爾、數(shù)組、json對象中的任意項
var O={ name:"yahoo", age:14, other:[1,2,true,"yahoo",3], man:{ "man1":"woman", "man2":"man2" }, aid:true, address: { streetAddress: "21 2nd Street", city: "New York", state: "NY", postalCode: "10021" } } function JOSN(O){ var newarr={}; for(key in O){ if (typeof O[key] ==='Array'){ newarr[key]=JOSN(O[key]); } else{ newarr[key]=O[key]; } } return newarr; } console.log(JOSN(O))
關(guān)于“JS中時間對象與引用類型的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:JS中時間對象與引用類型的示例分析-創(chuàng)新互聯(lián)
標(biāo)題來源:http://aaarwkj.com/article30/jsepo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站改版、云服務(wù)器、全網(wǎng)營銷推廣、網(wǎng)站策劃、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容