这次给大家带来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))
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
以上是JS的时间对象与引用类型的详细内容。更多信息请关注PHP中文网其他相关文章!

要构建一个功能强大且用户体验良好的网站,仅靠HTML是不够的,还需要以下技术:JavaScript赋予网页动态和交互性,通过操作DOM实现实时变化。CSS负责网页的样式和布局,提升美观度和用户体验。现代框架和库如React、Vue.js和Angular,提高开发效率和代码组织结构。

布尔属性是HTML中的特殊属性,不需要值即可激活。1.布尔属性通过存在与否控制元素行为,如disabled禁用输入框。2.它们的工作原理是浏览器解析时根据属性的存在改变元素行为。3.基本用法是直接添加属性,高级用法可通过JavaScript动态控制。4.常见错误是误以为需要设置值,正确写法应简洁。5.最佳实践是保持代码简洁,合理使用布尔属性以优化网页性能和用户体验。

HTML代码可以通过在线验证器、集成工具和自动化流程来确保其清洁度。1)使用W3CMarkupValidationService在线验证HTML代码。2)在VisualStudioCode中安装并配置HTMLHint扩展进行实时验证。3)利用HTMLTidy在构建流程中自动验证和清理HTML文件。

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript开发工具