1. ES5中新增了一些方法,可以很方便的操作数组或者字符串,这些方法主要包括以下几个方面

  • 数组方法
  • 字符串方法
  • 对象方法

2. 数组方法

迭代遍历方法:forEach()、map()、filter()、some()、every()
判断方法:isArray()

2.1 forEach跟jQuery的each用法类似。语法是:

array.forEach(function(currentValue, index, arr))
  • currentValue: 数组当前项的值
  • index: 数组当前项的索引
  • arr: 数组对象本身
var arr = [1,2,3]
arr.forEach(function(value, index, array){
console.log('每个数组元素'+ value)
console.log('每个数组元素的索引值'+ index)
console.log('数组本身'+ array)
})

运行效果如下图

2.2 map()

array.map(function(currentValue, index, arr))

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
注意:map() 方法是直接返回一个新的数组

  • currentValue: 数组当前项的值
  • index: 数组当前项的索引
  • arr: 数组对象本身
var array1 = [1, 4, 9, 16];
var map1 = array1.map(function(value, index, arr) {
return value * 2
});
console.log(map1) //[2,8,18,32]

2.3 filter()

array.filter(function(currentValue, index, arr))

filter()方法用于筛选创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组。
filter()方法是直接返回一个新的数组

  • currentValue: 数组当前项的值
  • index: 数组当前项的索引
  • arr: 数组对象本身
var arr = [12,66,88]
// 选出大于20的
var newarr = arr.filter(function(value, index){
return value >=20
})
可以简写成var newarr = arr.filter( //[66, 88])
console.log(newArr) //[66, 88]

预览效果如下图

2.4 some()

array.some(function(currentValue, index, arr))

some()方法用于检测数组中的元素是否满足指定条件,通俗点查找数组中是否有满足条件的元素
注意: some()方法返回值是布尔值,如果查找到这个元素,就返回true,如果查找不到则返回false
如果找到第一个满足条件的元素,则终止循环,不在继续查找

  • currentValue: 数组当前项的值
  • index: 数组当前项的索引
  • arr: 数组对象本身
var arr=[10,30,4]
var b = arr.some(function(value){
return value > 20
})
console.log(b) //true

2.5 every()

array.every(function(currentValue, index, arr))

every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
注意:every() 方法必须每个元素都符合条件才能返回true,若有一个不符合,则返回false。
若收到一个空数组,此方法在一切情况下都会返回 true。

  • currentValue: 数组当前项的值
  • index: 数组当前项的索引
  • arr: 数组对象本身

2.6 isArray()

Array.isArray(obj)

Array.isArray() 用于确定传递的值是否是一个 Array

  • obj是需要检测的值。如果是数组则返回true,否则返回false

区别:

  1. filter 是查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来
  2. some 是查找满足条件的元素是否存在,返回的是一个布尔值,如果查找第一个满足条件的元素,就终止循环。如果数组中查询唯一个元素,用some方法更为合适,因为它找到这个元素,就不在进行循环,效率更高
  3. every是查找所有的元素是否符合条件,返回的是一个布尔值
  4. map是创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果

3. 字符串方法

trim() 方法会从一个字符串的两端删除空白字符

str.trim()

trim() 方法并不影响原字符串本身,它返回的是一个新字符串。

4. 对象方法

Object.defineProperty()定义对象中新增属性或修改原有的属性

Object.defineProperty(obj, prop, descriptor)
  • obj: 必需。目标对象
  • prop: 必需。 需定义或修改的属性名字
  • descriptor: 必需。目标属性所拥有的特性

Object.defineProperty() 第三个参数descriptor说明: 以对象形式{}书写

  • value:设置属性的值,默认为undefined
  • writable:值是否可以重写。true | false 默认为false
  • enumerable: 目标属性是否可以被枚举。true | false 默认为false
  • configurable: 目标属性是否可以被删除或是否可以再次修改特性true | false 默认为false
var obj = {
id: 1,
pname: '小米',
price: 1999
}
//以前的对象添加和修改属性的方式
obj.num = 1000
obj.pirce = 99
console.log(obj) //Object.deefineProperty()定义新属性或者修改原有的属性
Object.defineProperty(obj, 'num',{
value: 1000,
})
Object.defineProperty(obj, 'pricee',{
value: 9.9,
})
Object.defineProperty(obj, 'id',{
//如果值为false,则不允许修改
writable: false,
})
Object.defineProperty(obj, 'address',{
value: '中国郑州市',
//如果值为false,则不允许遍历,枚举
enumerable: false
})
console.log(obj)
console.log(Object.keys(obj))

总结

本篇文章主要分享了ES5新增的一些方法,有数组方法、字符串方法、对象方法等等,主要分享了哥方法的用法,特点等等。如果想了解更多,请扫描二维码:

带你学习ES5中新增的方法的更多相关文章

  1. 带你学习MindSpore中算子使用方法

    摘要:本文分享下MindSpore中算子的使用和遇到问题时的解决方法. 本文分享自华为云社区<[MindSpore易点通]算子使用问题与解决方法>,作者:chengxiaoli. 简介 算 ...

  2. ES5中新增的Array方法详细说明

    一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (j ...

  3. 《JS权威指南学习总结--7.9 ES5中的数组方法》

    内容要点: ES5中定义了9个新的数组方法来遍历.映射.过滤.检测.简化和搜索数组. 概述:首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或一个元素)调用一次该函数. 如果是稀疏数组 ...

  4. ES5中新增的forEach等新方法的一些使用声明

    转载地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块, ...

  5. Es5数组新增的方法及用法

    1.forEachforEach是Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert);等同于下面这个传统的for循环: var ...

  6. Java8 Map中新增的方法使用总结

    前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, ...

  7. 带你学习Javascript中的函数进阶(一)

    1. 函数的定义和调用 1.1 函数的定义方式 函数声明方式function关键字(命名函数) 函数表达式(匿名函数) new Function() var fn = new Function('参数 ...

  8. ES6中新增字符串方法,字符串模板

    多了两个新方法 startsWith endsWith 返回的是一个Boolean值 let str='git://www.baidu.com/2123123'; if(str.startsWith( ...

  9. ES5函数新增的方法(call、apply、bind)

    1.call()的使用<script type="text/javascript"> var obj1 = { name:'bob', fn:function(){ c ...

随机推荐

  1. [HNOI2019]序列(单调栈+二分)

    通过打表证明发现答案就是把序列划分成若干段,每段的b都是这一段a的平均数.50分做法比较显然,就是单调栈维护,每次将新元素当成一个区间插入末尾,若b值不满足单调不降,则将这个区间与单调栈前一个区间合并 ...

  2. ClipboardMonitor的下载和使用

    本工具可以实时监视剪贴板的变化,可以用于32位和64位的Excel. 在任务窗格上面输入一个正则表达式,例如(\d+)\-(\d+),按下Enter确认. 然后在其他地方,例如浏览器页面或者记事本中复 ...

  3. 线性反馈移位寄存器(LFSR)-非线性反馈移位寄存器的verilog实现(产生伪随机数)

    一.线性反馈移位寄存器(LFSR) 通过对事先选定的种子做运算使得人工生成的伪随机序列的过程,在实际中,随机种子的选择决定了输出的伪随机序列的不同,也就是说随机种子的选择至关重要. 产生伪随机数的方法 ...

  4. PAT甲级——1006 Sign In and Sign Out

    PATA1006 Sign In and Sign Out At the beginning of every day, the first person who signs in the compu ...

  5. GPIO-FPGA架构

    GPIO是一种软件运行期间能够动态配置和控制的通用引脚 有不同的GPIObank,每个GPIO口的bank都会有编号的区分, 每个GPIO口除了通用的输入输出功能以外,还有其他复用功能,例如GPIO5 ...

  6. 吴裕雄--天生自然 HADOOP大数据分布式处理:修改CenterOS 7 IP设置

  7. 蓝桥杯-PREV3-带分数

    有人管蓝桥杯叫暴力杯,现在感觉还是挺贴切的.看到这题首先想到让i从1到n循环,首先判断i中无重复数字,再怎样判断能否用剩下的数构成n - i的假分数.之后看了题解.发现思路错了. 总结两点: 1.蓝桥 ...

  8. 网页title滚动

    );        var leftstar=title.substring (1,title.length );        document.title =leftstar +firstch ; ...

  9. SQL update 关联更改,内部需要引用表名

    select A.Id,A.Email,( select C.Email from [nopCommerce].[dbo].[Customer] C left join [nopCommerce].[ ...

  10. html中的select下拉框

    <select name="effective"> <option value="">请选择</option> <op ...