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的更多相关文章

  1. ECMAScript 6 扫盲

    ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中 ...

  2. ECMAScript 6入门

    预计在2014年底,ECMAScript 6将会正式发布,他的草案在13年3月份被冻结,后续提出新特性将会移至ECMASript 7中.目前还没有哪款浏览器实现了ES6的全部内容,兼容性最强的一款要数 ...

  3. Javascript与ECMAScript

    我们经常习惯性认为Javascript就是ECMAScript,但其实不是这样的. ECMAScript是一种脚本在语法和语义上的标准. 主要包括:语法.类型.语句.关键字.保留字.操作符.对象. 它 ...

  4. ECMAScript 6 开篇准备

    1前言 该系列文章均为学习阮一峰老师<ECMAScript 6 入门>一书的学习笔记.原著:http://es6.ruanyifeng.com/ 各大浏览器的最新版本,对ES6的支持可以查 ...

  5. ECMAScript 5中属性的特性值

    这是<JavaScript高级程序设计(第三版)>第六章相关内容的总结. ECMAScript中有两种属性:数据属性和访问器属性.每种属性都有四个特性值. 数据属性的四个特性值: [[Co ...

  6. SharePoint 2013 Excel Services ECMAScript 示例之明日限行

    前言:最近遇到一个“明日限行”的功能,北京的交通啊,这个不在今天讨论范围内,暂不吐槽,想想代码开发,还要写WebPart部署,很麻烦,而且部署服务器,需要领导审批,想绕过这个麻烦事儿,就想到客户端了, ...

  7. JavaScript异步编程(1)- ECMAScript 6的Promise对象

    JavaScript的Callback机制深入人心.而ECMAScript的世界同样充斥的各种异步操作(异步IO.setTimeout等).异步和Callback的搭载很容易就衍生"回调金字 ...

  8. EcmaScript相关文档

    ecmascript5.1中文文档 ECMAScript 6入门 JavaScript 标准参考教程 ECMAScript 5.1简介 ES5中新增的Array方法详细说明 firefox社区java ...

  9. ECMAScript 6 Features 中文版

    ECMAScript 6 Features 中文版 如词不达意,欢迎提 PR & issue 采用中英混排的方式进行译制,如不解请查看对应原文 本文档将与原作者的 文档 保持同步更新,欢迎关注 ...

随机推荐

  1. 使用vlc进行二次开发做自己的播放器

    可参考: 使用vlc播放器做rtsp服务器 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用 https://github.com/ZeBobo5/Vlc.Do ...

  2. MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交

    1.在Html表单里面使用了@Html.AntiForgeryToken()就可以阻止CSRF攻击. 2.相应的我们要在Controller中也要加入[ValidateAntiForgeryToken ...

  3. OWIN系列之自己动手编写中间件

    一.前言 1.基于OWIN的项目摆脱System.Web束缚脱颖而出,轻量级+跨平台,使得ASP.NET应用程序只需依赖这个抽象接口,不用关心所运行的Web服务器. 2.OWIN.dll介绍 使用反编 ...

  4. 什么是License

    许多混乱就始于你不知道License到底是什么,到底有什么含义.当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权.License只是授予他们于特定权利来使用你的产 ...

  5. java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;

    如果你出现类似如下错误 1. Install tomcat7 in my home directory and set up `CATALINA_HOME` environment variable ...

  6. Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同?

    看知乎:https://www.zhihu.com/question/20400700 了解的越多,就会发现,越多不了解.

  7. mysql数据库存储路径更改 数据文件位置

    使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...

  8. 【译文】JNI编程

    原文链接: https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html   没有逐字翻译,解说了文章的大 ...

  9. java开发问题总结-4-Maven使用问题汇总

    Non-resolvable parent POM [INFO] Scanning for projects... [ERROR] The build could not read 1 project ...

  10. MySQL报错:Got error 28 from storage engine

    今天碰到数据库出错: Got error 28 from storage engine 查了一下,数据库文件所在的盘应该没事,应该是数据库用的临时目录空间不够 问题原因: 磁盘临时空间不够导致. 解决 ...