回归JavaScript基础(六)
主题:引用类型Date、RegExp的介绍。
上节主要主要介绍了Object、Array引用类型。这节将继续为大家介绍引用类型,并对书中的一些知识点进行总结与归纳,也借此巩固自己对JavaScript基础知识的掌握。(题外话:果然,语文不好是硬伤啊,从小就不喜欢写文章(⊙o⊙)… 望读者理解,我都是随性发挥的 ヘ(´ー`ヘ) )
①Date类型是在早期Java中的java.util.Date类基础上构建的。
var date = new Date(); //创建一个日期对象。当语句执行时,会获取执行当时的时间
②Date类型使用自UTC(国际协调时间)1970年1月1日零时开始经过的毫秒数来保存日期。
var date1 = Date.parse("Jul 4, 2017"); //
console.log(new Date(date1)); //Tue Jul 04 2017 00:00:00 GMT+0800 (中国标准时间)
var date2 = Date.UTC(2017, 6, 4); //1499126400000 注意:月份是从0到11,巨坑!
console.log(new Date(date2)); //Tue Jul 04 2017 08:00:00 GMT+0800 (中国标准时间)
什么鬼,这两个结果并不是我想要的结果!怎么会多了8个小时。我猜测这应该和时区有关!
③日期也可以进行比较,666
var date1 = new Date(2017, 0, 1);
var date2 = new Date(2017, 1, 1);
console.log(date1 < date2); //true
④Date对象的方法,之间w3c上查阅即可
⑤RegExp正则表达式是用来匹配字符串的工具。我们可以用它来匹配字符串,看字符串是否符合我们的规则;我们可以用它来切分字符串。尽管现在很多js插件为我们提供了便捷的验证字符串方法,但作为一个前端开发者还是有必要了解正则表达式。要知道JavaScript一开始就是为了在前端判断用户输入合法而产生的!
⑥创建正则表达式,模型:var expression = / pattern / flags;或者new RegExp创建
var regExp1 = /abcd/;
var regExp2 = new RegExp('abcd');
console.log(regExp1 === regExp2); //false
console.log(regExp1.source === regExp2.source); //true
书中说,创建正则表达式会调用RegExp构造函数,每次都创建新的RegExp实例。这说明每个正则表达式都是一个新的对象,导致了上面两个看似相等不等吧
⑦正则表达式有三种模式,flags来表示。
var regExp0 = /abc/; //不写模式的话就是普通匹配,匹配到第一个符合后立即停止
var regExp1 = /abc/g; //g:全局模式,应用所有字符串,匹配到第一个符合后继续匹配
var regExp2 = /abc/i; //i:不区分大小写模式,匹配时忽略字符串大小写
var regExp3 = /abc/m; //m:多行模式,一行文本末尾时会继续查找下一行进行匹配(基本不用!)
⑧正则表达式中的特殊字符需要转义,如: ( [ { \ ^ $ | ) ? * + . ] }
var regExp1 = /[ab]c/i; //匹配第一个“ac”或“bc”,不区分大小写
var regExp2 = /\[ab\]c/i; //匹配第一个“[ab]c”,不区分大小写
⑨正则表达式中常见的匹配符。用\d匹配一个数字;用\w匹配一个字母或数字;用.表示任意字符,如“ab.”可以匹配“abc”、“ab1”、“ab!”等等;用*表示任意个字符(可以是0个);用+表示至少一个字符;用?表示0个或1个字符;用{n}表示n个字符;用{n,m}表示n-m个字符;用^表示行的开头,^\d表示必须以数字开头;用$表示结束,\d$表示必须以数字结尾。下面,举个栗子!
var regExp = /^([0-9a-zA-Z\_\.]+)@([0-9a-zA-Z\.]+)$/;
var email1 = "xu_123.home@qq.com";
var email2 = "xu123@qq.org";
regExp.test(email1); // true
regExp.test(email2); // true
⑩正则表达式配合split切割字符串
var str = "x,,u,c,h,,a,o,i";
str.split(/[\,]+/); //["x","u","c","h","a","o","i"]
正则表达式其实还有很多知识点,这里就不一一介绍了。有兴趣可以再查阅资料深入去学习。下节将继续记录引用类型笔记 \(^o^)/~
回归JavaScript基础(六)的更多相关文章
- 回归JavaScript基础(一)
主题:JavaScript简介. 一.JavaScript的起源 JavaScript诞生于1995年.当时,它的主要作用是处理一些输入验证操作.之前的话,都是把表单数据发送到服务器端,然后再去判断有 ...
- javascript基础(六)对象
原文http://pij.robinqu.me/ JavaScript Objects 创建对象 对象直接量 var o = { foo : "bar" } 构造函数 var o ...
- 回归JavaScript基础(十)
主题:创建对象 原型模式 JavaScript中的每个对象都有一个prototype属性(原型属性),这个属性是一个指针,指向一个对象,而这个对象可以由一些属性和方法组成.被指向的对象,可以是多个对象 ...
- 回归JavaScript基础(九)
主题:理解对象,创建对象. 小明是一名程序猿,也是一条单身狗!他常常自嘲:每天都会有很多对象,但却没有女朋友! 多么痛的领悟.哈哈,目前比较流行的编程语言都是面向对象的语言(Object-Orient ...
- 回归JavaScript基础(八)
主题:引用类型包装类.单体内置对象的介绍. 对于我们开发人员来说,JavaScript有种引用类型一定很陌生!那就是基本包装类型:Boolean.Number和String.这也不是我们的错,主要这些 ...
- 回归JavaScript基础(七)
主题:引用类型Function的介绍. 今天首先说的就是Function类型.下面就是定义函数的两种方法,第一种使用函数声明语法定义,第二种使用函数表达式定义.这两种定义函数的方式几乎没有什么区别. ...
- 回归JavaScript基础(五)
主题:介绍引用类型Object.Array. 在上一章中,作者就在说变量的值的时候,提到过引用类型这个概念.JavaScript中存在基本类型和引用类型,其中引用类型很重要,这里有许多我们需要注意的东 ...
- 回归JavaScript基础(四)
主题:JavaScript变量.作用域和内存问题 JavaScript的变量和别的语言比起来是与众不同的.说道变量,不得不谈他的作用域.同很多语言一样,JavaScript开发者也不用担心开发中内存的 ...
- 回归JavaScript基础(三)
主题:JavaScript基本概念. 任何语言的核心必然会描述这门语言最基本的工作原理.这部分内容对我们来说,读起来很乏味,甚至会产生困意,但这部分内容却是重要的!我有幸拜读<JavaScrip ...
随机推荐
- redmine3.3.3 rake db:migrate 报错invalid byte sequence in US-ASCII (Argument Error) 解决方法
这个错误有点莫名其妙,系统默认的就是utf-8,可bundle就是不对.. rake db:migrate 结果没有任何错误,反而是网页passenger 提示了这个错误 参考:https://git ...
- Vue路由-命名视图实现经典布局
Vue路由-命名视图实现经典布局 相关Html: <!DOCTYPE html> <html lang="en"> <head> <met ...
- 计算机上面常用的计算单位 & 个人计算机架构与接口设备
不多说,直接上干货! 计算机上面常用的计算单位 容量单位 速度单位 此网络常使用的单位为 Mbps 是 Mbits per second,亦即是每秒多少 Mbit. 个人计算机架构与接口设备 整个 ...
- predefClass中包含的符号
Scope[ ||(boolean,boolean), &&(boolean,boolean), !=(int,int), !=(long,long), !=(float,float) ...
- gles2.0环境的在windows上的建立
这里也有一个视频来讲解,大家可以看下,可以多提问题,意见,建议 http://edu.csdn.net/course/detail/606 #include <Windows.h> #in ...
- Windows 8.1 硬盘安装 Ubuntu14.04 双系统参考教程及注意事项
硬盘安装,无需光盘.U盘:Win8.1为主,Ubuntu14.04为辅,可将Windows或Ubuntu设置为开机默认启动项:在Ubuntu下可查看.操作Windows系统下的文件:适用于安装和14. ...
- Java 集合框架(一)—— 接口综述
前言:凡是使用 Java 编程的,几乎肯定会用到集合框架,比如 ArrayList.LinkedList.HashSet.HashMap 等,集合框架的代码绝对是大师级的实现,所以为了更好地使用集合框 ...
- mysql RR下不存在则插入
主要看并发事务中不存在则插入(只有key索引)的阻塞情况. 表定义: mysql> desc user; +-------------+------------------+------+--- ...
- Nodejs学习笔记(十六)—Pomelo介绍&入门
前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...
- layui框架使用总结
最近一个后台系统使用layui框架做的,遇到好多坑在这里总结一下. 1.layui的基本使用,下面的在他下面写,其他的事件也要在这个里面写 行内onclick事件是监听不到写在下面这种代码中的 ...