视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JS的时间对象与引用类型
2020-11-27 15:25:59 责编:小采
文档


这次给大家带来JS的时间对象与引用类型,使用JS时间对象与引用类型的注意事项有哪些,下面就是实战案例,一起来看一下。

基础类型有哪些?复杂类型有哪些?有什么特征?
基础类型: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的所有数据都可以被视为对象,这也是我们常说的一切皆为对象。

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

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} 内容。 console.log(obj1 == obj2);//把obj2赋值给obj1,所以obj2与obj1存储的位置是一样的,所以为true。

代码

写一个函数getIntv,获取从当前时间到指定日期的间隔时间。
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 秒

把数字日期改成中文日期,如:

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

写一个函数获取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() );//运行了22ms

楼梯有200级,每次走1级或是2级,从底走到顶一共有多少种走法?用代码(递归)实现

function fn(num) {
if (num==0||num==1) {
return 1;
}
else {
return fn(num-1)+fn(num-2);
}
}
console.log(fn(200));

写一个json对象深拷贝的方法,json对象可以多层嵌套,值可以是字符串、数字、布尔、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))

写一个数组深拷贝的方法,数组里的值可以是字符串、数字、布尔、数组中的任意项目

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

写一个深拷贝的方法,拷贝对象以及内部嵌套的值可以是字符串、数字、布尔、数组、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))

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

相关阅读:

简单的冒泡以及双向冒泡排序案列

用来下载图片的javascript脚本

下载本文
显示全文
专题