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 采用中英混排的方式进行译制,如不解请查看对应原文 本文档将与原作者的 文档 保持同步更新,欢迎关注 ...
随机推荐
- coreseek安装
一. Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...
- 20145204&20145212信息安全系统实验二
20145204&20145212信息安全系统实验二 链接
- 利用vim查看日志,快速定位问题
起因 在一般的情况下,如果开发过程中测试报告了一个问题,我一般会这么做: 1.在自己的开发环境下重试一下测试的操作,看看能不能重现问题.不行转2 2.数据库连接池改成测试库的地址,在自己的开发环境下重 ...
- 使用powershell批量修改文本为utf8
根据上一篇powershell生成pro的方法,增加一个批量修改文本文件为utf8格式的方法 $incPath = dir -filter "*.c" -Recurse $temp ...
- 如何让vim自动显示函数声明-使用 echofunc.vim插件
echofunc.vim可以显示函数的declaration, 默认的是针对c/c++, 对于php, 只要 启用了 ctags都可以, 因为echofunc是从tags file中获取数据的... ...
- 20155217-杨笛-c与java
命是弱者的借口,运是强者的谦词 你有什么技能比大多数人(超过90%以上)更好? 针对这个技能的获取你有什么成功的经验? 与老师博客中的学习经验有什么共同之处? 其实我经常会去想自己有什么拿得出手的优点 ...
- Apache Curator: Zookeeper客户端
Apache Curator Framework url: http://curator.apache.org/curator-framework/ The Curator Framework is ...
- Tomcat 内存优化设置
vi /tomcat7.0/bin/catalina.sh 开发环境 #!/bin/sh JAVA_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m' 服务器: #! ...
- 使用github page 页面建博客中遇到的几个小问题
Git Bash 中几个常用的一般命令 git init #初始化 git status #状态 git add . #添加文件 git status git commit -m "firs ...
- 学习 opencv---(5) 创建Trackbar(活动条) &图像对比度,亮度值调整
学习如何在opencv 中用trackbar 函数创建和使用 轨迹条,以及图像对比度,亮度值的动态调整 一.OpenCV中轨迹条(Trackbar)的创建和使用 [1]创建轨迹条-----create ...