ECMAScript 5
2009年12月,ECMAScript 5.0
2011年6月,ECMAscript 5.1版发布
2015年6月,ECMAScript 6正式通过,成为国际标准
ES6第一个版本 ES2015,发布于2015年6月,第二个版本 ES2016发布于2016年6年
ECMAScript 5 Object Array扩展
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>ECMAScript5</title>
<style>
p{ line-height: 40px;border-bottom: 1px solid green;}
</style>
</head>
<body>
<p>1 .ES5 strict模式,变量必须有 var</p>
<script>
"use strict";
//testvar = 4;
</script>
<p>2. JSON.parse 字符串转为json</p>
<script>
"use strict";
var str='{"name":"hello"}';
var res=JSON.parse(str);
console.log("res.name: "+res.name);
</script>
<p>2.2 JSON.parse reviver</p>
<script>
"use strict";
var str2='{"name":"hello","age":"12"}';
var res2=JSON.parse(str2,function(key,value){
if(typeof value == 'string'){
return parseInt(value);
}else{
return value;
}
});
console.log("res2.age: " +res2.age+ ' ,type: '+typeof(res2.age));
</script>
<p>3. JSON.stringfy() 过滤掉 undefined 的值 ,并格式化JSON 缩进</p>
<script>
"use strict";
var nums = {
"first": 7,
"second": 14,
"third": 13
}
var luckyNums = JSON.stringify(nums, function(key, value) {
if (value == 13) {
return undefined; // 如果 undefined 则直接被JSON忽略。
} else {
return value;
}
}, 2); // 数字2是格式化,缩进2个空格,最大缩进10个空格。
console.log("luckyNums: "+luckyNums);
</script>
<p>4.1 Object.defineProperty 对象属性 ,定义 cat 对象的 name 属性 默认值为 miao 且不可以修改</p>
<script>
"use strict"; // 去掉 strict 不报错。 但可以显示错误
var cat={};
Object.defineProperty(cat,"name",{
value:'miao',
writable:false
})
//cat.name='hehe'; // use strict 浏览器会报错
console.log("cat.name: "+cat.name);
</script>
<p>4.2 Object.create()</p>
<script>
"use strict";
function Poker(style, title, value) {
this.Style = style;
this.Title = title;
this.Value = value;
}
var pokerA = Object.create(new Poker("club", "A", 14));
console.log(Poker.constructor); //function Function() { [native code] }
console.log("pokerA.Value: "+pokerA.Value);
</script>
<p>4.3 Object 总结:对对象的属性有了更多控制,比如是否允许被修改,删除等</p>
<a href="https://msdn.microsoft.com/zh-cn/library/dn656907.aspx">Object细节</a>
<p>5.1 Array 数组 isArray indexOf</p>
<script>
"use strict";
console.log("Array.isArray(): "+Array.isArray("xxx"));
console.log("Array.isArray(): "+Array.isArray(['a','b']));
console.log("Array.indexOf(): "+["Hello", "javaScript", "ECMAScript", "HTML5"].indexOf("javaScript"));//1
console.log("Array.lastIndexOf(): "+["a","Hello", "javaScript"].lastIndexOf("javaScript"));//1
</script>
<p>5.2 array.forEach 处理数组每一个元素</p>
<script>
"use strict";
var arr1 = "Charles,Mark,Bill,Vincent,William,Joseph".split(",");
arr1.forEach(
function(item, index) {
if (index % 2 == 0) {
arr1[index] = "name:" + item;
}
}
);
arr1.forEach(
function(item, index) {
console.log("array.forEach(): "+item);
}
);
</script>
<p>5.3 array.some() 一些 array.every()</p>
<script>
var arr11 = "Charles,Markee,Bile,Vincent,William,Joseph".split(",");
console.log("array.some(): "+arr11.some(
function(item, index) {
return item.length < 5;
} //数组是否有一些元素的长度小于5 true
)
); //true
console.log("array.every(): "+arr11.every(
function(item, index) {
return item.length < 7;
} // 所有数组元素长度都小于7 ? false
)
)//false
</script>
<p>5.4 array.map()</p>
<script>
var arr1 = "Charles,Mark,Bill,Vincent,William,Joseph".split(","); // split() 字符串转成数组
var arr2 = arr1.map(
function(item, index) {
if (item.indexOf("ll") > -1) {
return item;
}
}
);
arr2.forEach(
function(item, index) {
console.log("item: "+item);
}
);
</script>
</body>
</html>
<p>4. es5 字符串当做数组</p>
<script>
"use strict";
var a = "hello,world";
document.write(a[2]+" "+a[a.length-1]);
</script>
ECMAScript 5的更多相关文章
- ECMAScript 6 扫盲
ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中 ...
- ECMAScript 6入门
预计在2014年底,ECMAScript 6将会正式发布,他的草案在13年3月份被冻结,后续提出新特性将会移至ECMASript 7中.目前还没有哪款浏览器实现了ES6的全部内容,兼容性最强的一款要数 ...
- Javascript与ECMAScript
我们经常习惯性认为Javascript就是ECMAScript,但其实不是这样的. ECMAScript是一种脚本在语法和语义上的标准. 主要包括:语法.类型.语句.关键字.保留字.操作符.对象. 它 ...
- ECMAScript 6 开篇准备
1前言 该系列文章均为学习阮一峰老师<ECMAScript 6 入门>一书的学习笔记.原著:http://es6.ruanyifeng.com/ 各大浏览器的最新版本,对ES6的支持可以查 ...
- ECMAScript 5中属性的特性值
这是<JavaScript高级程序设计(第三版)>第六章相关内容的总结. ECMAScript中有两种属性:数据属性和访问器属性.每种属性都有四个特性值. 数据属性的四个特性值: [[Co ...
- SharePoint 2013 Excel Services ECMAScript 示例之明日限行
前言:最近遇到一个“明日限行”的功能,北京的交通啊,这个不在今天讨论范围内,暂不吐槽,想想代码开发,还要写WebPart部署,很麻烦,而且部署服务器,需要领导审批,想绕过这个麻烦事儿,就想到客户端了, ...
- JavaScript异步编程(1)- ECMAScript 6的Promise对象
JavaScript的Callback机制深入人心.而ECMAScript的世界同样充斥的各种异步操作(异步IO.setTimeout等).异步和Callback的搭载很容易就衍生"回调金字 ...
- EcmaScript相关文档
ecmascript5.1中文文档 ECMAScript 6入门 JavaScript 标准参考教程 ECMAScript 5.1简介 ES5中新增的Array方法详细说明 firefox社区java ...
- ECMAScript 6 Features 中文版
ECMAScript 6 Features 中文版 如词不达意,欢迎提 PR & issue 采用中英混排的方式进行译制,如不解请查看对应原文 本文档将与原作者的 文档 保持同步更新,欢迎关注 ...
随机推荐
- dietpi请暂时不要升级为jessie
关于升级到Debian最新稳定版jessie,作者是这样说的:一旦官方Raspbian升级到Jessie,DietPi也会随之切换到Jessie.由于改动较大,很多功能需要修改后才能正常使用,到时候可 ...
- Dubbo项目demo搭建
项目参考: http://dubbo.io/User+Guide-zh.htm https://my.oschina.net/superman158/blog/466637 项目使用 maven+id ...
- ActiveMQ集群下的消息回流功能
------------------------------------------------------------------ "丢失"的消息 如果有broker1和brok ...
- C#大数据文本高效去重
C#大数据文本高效去重 转载请注明出处 http://www.cnblogs.com/Huerye/ TextReader reader = File.OpenText(@"C:\Users ...
- 配置tomcat系统日志--java eclipse
控制台那里的日志只是部分,有时候报错了我们并没有显示出来,所以需要找到系统日志... 双击tomcat v.80 Service---点击open lauch Configuration--Argum ...
- PHP 位运算(&, |, ^, ~, <<, >>)及 PHP错误级别报告设置(error_reporting) 详解
位运算符允许对整型数中指定的位进行求值和操作. 位运算符 例子 名称 结果 $a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1. $a | $b Or(按位或) ...
- js的click事件传递参数方法
参考链接:http://www.cnblogs.com/shytong/p/5005704.html 由于是回调函数,事先就需要先把数据储存在event上,否则只能用全局变量做为参数传递,建议用bin ...
- html_随笔
1 <h1> </h> 标题 2 <p> </p> 段落 3 <br /> 换行 4 <!-- ...--> 注释 5 < ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- C# I/O
获取运行时的动态目录 private static string GetDataDir_Data() { var parent = Directory.GetParent(Directory.GetC ...