首页 > 开发 > JavaScript > 正文

JS的时间对象与引用类型

2020-03-24 19:13:42
字体:
来源:转载
供稿:网友
这次给大家带来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 somethintRuntime.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 i++){console.log(1);//输出100次1Runtime.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))

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

相关阅读:

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

用来下载图片的javascript脚本

以上就是JS的时间对象与引用类型的详细内容,html教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表