关于es5的一些新方法
1.数组方法
(1)isArray
在之前我们判断数组类型的数据都是用instanceof来判断的,es5新增了对数组的判断,即Array.isArray()
(2)every和some
这两个方法一般用于对数组过滤,并返回boolean值,
every方法对应于要求数组中所有元素都符合要求,而some是只要有一个符合就返回true,二者的使用方法一致。
var flag = array.every(function(value, index, fullValue){
return value>5;//这里可以写筛选条件
});
(3)forEach
这个类似于jQuery中的$.each();但是注意的是参数的不同,二者的索引和子集位置相反
array.forEach(function(value, index, fullArray){
});
(4)map
这个方法可以通过遍历一个数组来返回一个新的数组,并且可以对数组每一项进行修改
var newArray = array.map(function(value, index, fullArray){
});
(5)filter
对数组进行过滤,并返回符合条件的数组,这个方法可以看做缩减版的map方法
var newArray = array.filter(function(value, index, fullArray){
return value>5;//过滤条件
});
2.对象方法
(1)Object.preventExtensions()和Object.isExtensible()
这两个方法,前者用于对象的锁定,即Object.preventExtensions(obj),obj对象无法再添加新的属性和方法,对象无法继续扩展,而Object.isExtensible用于检测对象是否被锁定。
例:var obj = {
a: 1
};
Object.preventExtensions(obj);
obj.b = 2;
console.log(obj);//输出{a:1}
(2)Object.freeze()和Object.isFrozen()
这个两个方法,前者用于更进一步锁定对象,也就是说对象的原有值无法改变,当然也无法删除,而后者检测对象是否具有这个属性。
(3)Object.getOwnPropertyDescriptor()
var obj = {
name:'javascript'
}
(4)Object.getOwnPropertyDescriptor(obj, "name");
//返回如下
{
configurable:true,
enumerable:true,
value:'javascript',
writable:true
}
这里返回的值可以用Object.defineProperty()来设定。而Vue的双向数据绑定也用的这一点,具体在我之前的写的博客中有(http://www.cnblogs.com/Upton/p/5969475.html)。
(5)Object.keys()
可以获取所有的对象key值
(6)Object.create()
可以创建一个对象的副本,类似于复制对象,对于继承有一定意义。
var person = {
name:"javascript"
};
var p1 = Object.create(person);
关于es5的一些新方法的更多相关文章
- es5数组的新方法
1.every方法 //逻辑判断返回值为一个Boolean值 every方法就是每一个返回函数的返回值都是true的时候,才为true,否则为false var arr=[1,2,5,88,5,555 ...
- ES5中新增的forEach等新方法的一些使用声明
转载地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块, ...
- 看es6 字符串新方法有感
'x'.repeat(3) // "xxx" 'hello'.repeat(2) // "hellohello" 'na'.repeat(0) // " ...
- ES5 object的新函数
虽然说现在并不是所有的浏览器都已经支持ECMAScript5的新特性,但相比于ECMAScript4而言ECMAScript5被广大浏览器厂商广泛接受,目前主流的浏览器中只有低版本的IE不支持,其它都 ...
- 《JS权威指南学习总结--7.9 ES5中的数组方法》
内容要点: ES5中定义了9个新的数组方法来遍历.映射.过滤.检测.简化和搜索数组. 概述:首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或一个元素)调用一次该函数. 如果是稀疏数组 ...
- javascript Object的新方法
今天复习es6,又看到Object的一堆方法,与es5的表现又有不一致,耗费了一整天,整理一下: 前几天在司徒正美的书里又看到了es5 Object的字眼,为了向下兼容,大神们也是牛逼的整理出一系列i ...
- 带你学习ES5中新增的方法
1. ES5中新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括以下几个方面 数组方法 字符串方法 对象方法 2. 数组方法 迭代遍历方法:forEach().map().filter( ...
- ES5新增数组的方法
ES5新增数组的方法 ES5新增数组常见方法(indexOf/forEach/map/filter/some/every) .indexOf( data , start) 检测数组中是否存在指定数据 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
随机推荐
- 安全测试 - CSRF攻击及防御
CSRF(Cross-site request forgery跨站请求伪造) 尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左.XSS利用站点内的信任用户,而CSRF则通过伪 ...
- CoreOS和Docker入门
转载自: http://www.oschina.net/translate/coreos_and_docker_first_steps?cmp CoreOS是一个基于Linux,systemd和Doc ...
- C程序设计语言学习笔记
在Windows下运行C语言程序 Windows下的编程工具使用 VC 6.0,下面讲解如何在VC 6.0下运行上节的"Hello, world"程序. 1) 新建Win32 Co ...
- 【BZOJ 3993】【SDOI 2015】星际战争
http://www.lydsy.com/JudgeOnline/problem.php?id=3993 调了好长时间啊 这道题设时间为time,那么对于m个武器从S向这m个点连容量为time*Bi的 ...
- 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序。解决办法
在64位服务器系统上,默认不支持Microsoft.Jet.OLEDB.4.0的驱动程序,系统默认会提示未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"的错误 ...
- 在 Linux 中查看时区
1.date date +"%Z %z" 或者 date -R 2.timedatectl timedatectl|grep "Timezone" 可以使用 t ...
- 实用篇!Asp.Net数据传输压缩
一.业务场景 公司关键业务模块之一考试系统试卷内容加载缓慢.加载失败,前方人员哀声四起,客户投诉,各种爆炸! 二.问题分析 1.试卷存储采用文本文件方式存储 引发问题:并发情况下IO频繁,造成过多的线 ...
- 【codeforces 696B】 Puzzles
http://codeforces.com/problemset/problem/696/B (题目链接) 题意 给出一棵树,随机dfs遍历这棵树,求解每个节点的期望dfs序. Solution 考虑 ...
- 【bzoj1415】 Noi2005—聪聪和可可
http://www.lydsy.com/JudgeOnline/problem.php?id=1415 (题目链接) 题意 一张图,聪聪想吃可可.每单位时间聪聪可以先移动两次:可可后移动一次或停在原 ...
- 解决安卓微信浏览器中location.reload 或者 location.href失效的问题
在移动wap中,经常会使用window.location.href去跳转页面,这个方法在绝大多数浏览器中都不会 存在问题,但早上测试的同学会提出了一个bug:在安卓手机的微信自带浏览器中,这个是失效的 ...