主题:引用类型Date、RegExp的介绍。
上节主要主要介绍了Object、Array引用类型。这节将继续为大家介绍引用类型,并对书中的一些知识点进行总结与归纳,也借此巩固自己对JavaScript基础知识的掌握。(题外话:果然,语文不好是硬伤啊,从小就不喜欢写文章(⊙o⊙)… 望读者理解,我都是随性发挥的 ヘ(´ー`ヘ) )
①Date类型是在早期Java中的java.util.Date类基础上构建的。
1 var date = new Date(); //创建一个日期对象。当语句执行时,会获取执行当时的时间
②Date类型使用自UTC(国际协调时间)1970年1月1日零时开始经过的毫秒数来保存日期。
1 var date1 = Date.parse("Jul 4, 2017"); //1499097600000 2 console.log(new Date(date1)); //Tue Jul 04 2017 00:00:00 GMT+0800 (中国标准时间) 3 var date2 = Date.UTC(2017, 6, 4); //1499126400000 注意:月份是从0到11,巨坑! 4 console.log(new Date(date2)); //Tue Jul 04 2017 08:00:00 GMT+0800 (中国标准时间)
什么鬼,这两个结果并不是我想要的结果!怎么会多了8个小时。我猜测这应该和时区有关!
③日期也可以进行比较,666
1 var date1 = new Date(2017, 0, 1); 2 var date2 = new Date(2017, 1, 1); 3 console.log(date1 < date2); //true
④Date对象的方法,之间w3c上查阅即可
⑤RegExp正则表达式是用来匹配字符串的工具。我们可以用它来匹配字符串,看字符串是否符合我们的规则;我们可以用它来切分字符串。尽管现在很多js插件为我们提供了便捷的验证字符串方法,但作为一个前端开发者还是有必要了解正则表达式。要知道JavaScript一开始就是为了在前端判断用户输入合法而产生的!
⑥创建正则表达式,模型:var expression = / pattern / flags;或者new RegExp创建
1 var regExp1 = /abcd/; 2 var regExp2 = new RegExp('abcd'); 3 console.log(regExp1 === regExp2); //false 4 console.log(regExp1.source === regExp2.source); //true
书中说,创建正则表达式会调用RegExp构造函数,每次都创建新的RegExp实例。这说明每个正则表达式都是一个新的对象,导致了上面两个看似相等不等吧
⑦正则表达式有三种模式,flags来表示。
1 var regExp0 = /abc/; //不写模式的话就是普通匹配,匹配到第一个符合后立即停止 2 var regExp1 = /abc/g; //g:全局模式,应用所有字符串,匹配到第一个符合后继续匹配 3 var regExp2 = /abc/i; //i:不区分大小写模式,匹配时忽略字符串大小写 4 var regExp3 = /abc/m; //m:多行模式,一行文本末尾时会继续查找下一行进行匹配(基本不用!)
⑧正则表达式中的特殊字符需要转义,如: ( [ { ^ $ | ) ? * + . ] }
1 var regExp1 = /[ab]c/i; //匹配第一个“ac”或“bc”,不区分大小写 2 var regExp2 = /[ab]c/i; //匹配第一个“[ab]c”,不区分大小写
⑨正则表达式中常见的匹配符。用d匹配一个数字;用w匹配一个字母或数字;用.表示任意字符,如“ab.”可以匹配“abc”、“ab1”、“ab!”等等;用*表示任意个字符(可以是0个);用+表示至少一个字符;用?表示0个或1个字符;用{n}表示n个字符;用{n,m}表示n-m个字符;用^表示行的开头,^d表示必须以数字开头;用$表示结束,d$表示必须以数字结尾。下面,举个栗子!
1 var regExp = /^([0-9a-zA-Z\_.]+)@([0-9a-zA-Z.]+)$/; 2 var email1 = "xu_123.home@qq.com"; 3 var email2 = "xu123@qq.org"; 4 regExp.test(email1); // true 5 regExp.test(email2); // true
⑩正则表达式配合split切割字符串
1 var str = "x,,u,c,h,,a,o,i"; 2 str.split(/[\,]+/); //["x","u","c","h","a","o","i"]
正则表达式其实还有很多知识点,这里就不一一介绍了。有兴趣可以再查阅资料深入去学习。下节将继续记录引用类型笔记 (^o^)/~