1.Date内置对象

获取系统时间

var now = new Date()
console.log(now)
console.log(now.getDate())
console.log(now.getDay())
console.log(now.getMilliseconds())

2.构造Date对象

var now = new Date(2017, 12, 6)
console.log(now)
console.log(now.getDate())
console.log(now.getDay())
console.log(now.getMilliseconds())

需要注意的是,javascript的月份为0-11,因此,var now = new Date(2017, 12, 6)的时间为2018-01-06

3.RegExp正则

正则声明的两种方式

var re1 = /ABC\-001/;
var re2 = new RegExp("ABC\\-001")
console.log(re1)
console.log(re2)

示例如下:

var re1 = /^\d{3}-\d{3,8}$/;
console.log(re1.test('010-12345'))
console.log(re1.test('010-1234x'))
console.log(re1.test('010 12345'))

运行结果: true false false

正则表达式的作用如下:

1)切分字符串

固定分隔符切分

'a b c'.split(' ');//['a','b',' ','c']

正则规则切分

'a b c'.split(/\s+/);//['a','b','c']

多个空格或逗号切分

'a,b, c'.split(/[\s,]+/)

2)提取子串

 var re1 = /^(\d{3})-(\d{3,8})$/;
console.log(re1.exec('010-12345'))

运行结果:['010-12345','010','12345']

括号()表示要提取的分组

3)贪婪匹配,非贪婪匹配

贪婪匹配匹配尽可能多的字符

var re1 = /^(\d+)(0*)$/;
console.log(re1.exec('102300'))

运行结果:["102300", "102300", ""]

非贪婪匹配匹配尽可能少的字符

var re1 = /^(\d+?)(0*)$/;
console.log(re1.exec('102300'))

运行结果:["102300","1023","00"]

4)全局匹配

var r1 = /test/g;

// 等价于:

var r2 = new RegExp('test', 'g');

示例:

var re1 = /^(\d+?)(0*)$/;
var s = 'JavaScript, VBScript, JScript and ECMAScript';
var re=/[a-zA-Z]+Script/g;
console.log(re.exec(s));
console.log(re.lastIndex);
console.log(re.exec(s));
console.log(re.lastIndex);

运行结果:

[JavaScript]

10

[VBScript]

20

全局匹配类似搜索,不能使用/^...$/

正则表达式i,表示忽略大小写,m,表示执行多行匹配

4.JSON对象

JSON是一种数据交换格式

1)可以包含以下几种数据类型:

number:数值

boolean:true/false

string:字符串

null:空对象

array:数组

object:对象{}

示例如下:

var language = {
name: 'javascript',
score: 9.0,
popular:true
}
console.log(language)
var s = JSON.stringify(language)
console.log(s)

运行结果:

{name: "javascript", score: 9, popular: true}

{"name":"javascript","score":9,"popular":true}

2)JSON序列化

JSON.stringify(json_obj, null, ' ');

将JSON对象序列化成JSON格式字符串

第一个参数:要序列化的对象

第二个参数:要输出的属性,或者属性处理函数

如['name'],那么只会输出name属性

或者函数,将string类型的value转大写

JSON.stringify(json_obj, convert, ' ');

function convert(key, value) {

if (typeof value === 'string') {

return value.toUpperCase();

}

return value;

}

第三个参数:属性前添加空格,可以使输出更美观

也可以自定义序列化方法

var language = {
name: 'javascript',
score: 9.0,
popular:true,
toJSON: function(){
return {
'Name': this.age,
'Score': this.score
}
}
}
console.log(language)
var s = JSON.stringify(language)
console.log(s)

3)JSON反序列化

将JSON格式字符串,转化为一个JavaScript对象

JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}

javascript基础拾遗(六)的更多相关文章

  1. 回归JavaScript基础(六)

    主题:引用类型Date.RegExp的介绍. 上节主要主要介绍了Object.Array引用类型.这节将继续为大家介绍引用类型,并对书中的一些知识点进行总结与归纳,也借此巩固自己对JavaScript ...

  2. JavaScript基础学习(六)—函数

    一.函数的定义 1.function语句形式 //1.function语句式 function test1(){ alert("I am test1"); } test1(); 2 ...

  3. javascript基础拾遗(十三)

    1.jQuery的特点 jQuery是目前非常流行的javascript库,理念是"Write Less,Do More" 1)消除浏览器差异 2)简洁的操作DOM方法 3)轻松实 ...

  4. javascript基础拾遗(十二)

    1.javascript的单线程特性 在javascript中,所有的代码都是单线程的 因此所有的网络操作,浏览器事件,都必须是异步执行的,异步执行的逻辑是回调. function callback( ...

  5. javascript基础拾遗(十一)

    1.DOM操作 1)查找 //根据id查找 document.getElementById() //根据html标签查找 documnet.getElementByTagName() //根据样式cl ...

  6. javascript基础拾遗(十)

    1.支持ES6标准的浏览器 IE10+ Chrome Safari Firefox 移动端浏览器统一都支持 需要注意的是,不同浏览器对各个特性的支持也不一样 2.window对象 当前浏览器窗口对象 ...

  7. javascript基础拾遗(七)

    1.对象的继承__proto__ var Language = { name: 'program', score: 8.0, popular: function () { return this.sc ...

  8. javascript基础拾遗(五)

    1.什么是箭头函数 ES6引入的一种新的函数,类似匿名函数,x=>xx 箭头左端为函数参数,右端为函数体 相当于 function (x){ retutn xx } 2.箭头函数的特点 更简洁 ...

  9. javascript基础拾遗(二)

    1.对象定义 定义属性 var language = { name:'javascript', score:9.0 }; console.log(language.name) console.log( ...

随机推荐

  1. Qt5中表格处理大数据量

    在Qt中如果是普通项目,GUI处理展现的数据量不大,一般用QTableWidget,QTreeWidget这样的控件就满足了,但是如果数据量行数达到了几万行,那么Widget的展示性能就偏差了. Qt ...

  2. Redis持久化之RDB与AOF

    1. Redis的持久化方式 Redis作为高效的缓存件,它的数据存放在内存中,如果没有配置持久化,那么数据会在重启后丢失,因此如果不是仅用Redis做缓存的话,需要开启Redis的持久化功能,将数据 ...

  3. 修改谷歌云google cloud engine VM root账户的密码和允许远程ssh登录

      Figured it out. The VM's in cloud engine don't come with a root password setup by default so you'l ...

  4. KVM虚拟机的创建、管理与迁移

    [日期:2012-06-01] KVM虚拟机管理 一.环境 role         hostname    ip                  OS kvm_server   target   ...

  5. windows 7 提示缺少D3DCOMPILER_47.dll的正确解决方法

    下载 KB4019990补丁 我上传一下吧. 点击下载

  6. linux shell 脚本攻略学习18--grep命令详解

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是unix/linux中用于文本搜索 ...

  7. 73条日常shell命令汇总,总有一条你需要!

    1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台: Ctrl + z ...

  8. js解决浮点数的加减乘除

    function add(a, b) { var c, d, e; try { c = a.toString().split(".")[1].length; } catch (f) ...

  9. 使用Beetle简单构建聊天室程序

    之前已经讲解了Beetle简单地构建网络通讯程序,那程序紧紧是讲述了如何发送和接收数据:这一章将更深入的使用Beetle的功能,主要包括消息制定,协议分析包括消息接管处理等常用的功能.为了更好的描述所 ...

  10. 页面生命周期里面还有很东西,如PageHandlerFactory等等这些东东也够吃一壶的,发现每走到一个领域,发现要学的东西实在是太多太多啦,总感觉自己所学的东西只是沧海一粟,走过了这道坎,又是一片海洋,我只能呐喊:生命永不止息,学海无涯----够用就好。

    页面生命周期里面还有很东西,如PageHandlerFactory等等这些东东也够吃一壶的,发现每走到一个领域,发现要学的东西实在是太多太多啦,总感觉自己所学的东西只是沧海一粟,走过了这道坎,又是一片 ...