JS的時(shí)間對(duì)象與引用分類
發(fā)表時(shí)間:2023-12-23 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]這次給大家?guī)?lái)JS的時(shí)間對(duì)象與引用類型,使用JS時(shí)間對(duì)象與引用類型的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下;A(chǔ)類型有哪些?復(fù)雜類型有哪些?有什么特征?基礎(chǔ)類型:String 類型、Null 類型、Number 類型、Undefined類型、Boolean 類型復(fù)雜類型:Object 類型...
這次給大家?guī)?lái)JS的時(shí)間對(duì)象與引用類型,使用JS時(shí)間對(duì)象與引用類型的
注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。
基礎(chǔ)類型有哪些?復(fù)雜類型有哪些?有什么特征?
基礎(chǔ)類型:String 類型、Null 類型、Number 類型、Undefined類型、Boolean 類型
復(fù)雜類型:Object 類型
作用:
String類型: String是Unicode字符組成的序列,俗稱字符串,可以用雙引號(hào)或者單引號(hào)表示,沒(méi)有區(qū)別,匹配即可
Null類型: Null類型只有一個(gè)值:null,表示空指針,也就是不存在的東西
Number類型: JavaScript的數(shù)字類型和其它語(yǔ)言有所不同,沒(méi)有整型和浮點(diǎn)數(shù)的區(qū)別,統(tǒng)一都是Number類型,可以表示十進(jìn)制、八進(jìn)制、十六進(jìn)制
Undefined類型: Undefined類型也只有一個(gè)值undefined,表示變量只被聲明,沒(méi)有被初始化,也就是有這個(gè)指針,但是這個(gè)指針沒(méi)有指向任何空間
Boolean類型: Boolean有兩個(gè)值:1.true2.false
Object類型: 對(duì)象(object)是JavaScript的核心概念,也是最重要的數(shù)據(jù)類型。JavaScript的所有數(shù)據(jù)都可以被視為對(duì)象,這也是我們常說(shuō)的一切皆為對(duì)象。
如下代碼的輸出? 為什么?
var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2);//false,由于obj1與obj2所儲(chǔ)存的位置不同,所以false。
console.log(obj1 = obj2);//obj2賦值給obj1 輸出 Object { a=1, b=2} 內(nèi)容。
console.log(obj1 == obj2);//把obj2賦值給obj1,所以obj2與obj1存儲(chǔ)的位置是一樣的,所以為true。
代碼
寫(xiě)一個(gè)函數(shù)getIntv,獲取從當(dāng)前時(shí)間到指定日期的間隔時(shí)間。
var str = getIntv("2016-01-08");
console.log(str); // 距除夕還有 20 天 15 小時(shí) 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+"小時(shí)"+min+"分鐘"+sec+"秒")
}
console.log(str); // 距2017-01-27還有 20 天 15 小時(shí) 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',輸出'二零一六年零二月二八日',讀起來(lái)很別扭
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');//"二零一五年一月八日"
寫(xiě)一個(gè)函數(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開(kāi)始算;
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級(jí),每次走1級(jí)或是2級(jí),從底走到頂一共有多少種走法?用代碼(遞歸)實(shí)現(xiàn)
function fn(num) {
if (num==0 num==1) {
return 1;
}
else {
return fn(num-1)+fn(num-2);
}
}
console.log(fn(200));
寫(xiě)一個(gè)json對(duì)象深拷貝的方法,json對(duì)象可以多層嵌套,值可以是字符串、數(shù)字、布爾、json對(duì)象中的任意項(xiàng)
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))
寫(xiě)一個(gè)數(shù)組深拷貝的方法,數(shù)組里的值可以是字符串、數(shù)字、布爾、數(shù)組中的任意項(xiàng)目
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))
寫(xiě)一個(gè)深拷貝的方法,拷貝對(duì)象以及內(nèi)部嵌套的值可以是字符串、數(shù)字、布爾、數(shù)組、json對(duì)象中的任意項(xiàng)
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))
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
相關(guān)閱讀:
簡(jiǎn)單的冒泡以及雙向冒泡排序案列
用來(lái)下載圖片的javascript腳本
以上就是JS的時(shí)間對(duì)象與引用類型的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。