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

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

2. 数组方法

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

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

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

运行效果如下图

2.2 map()

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

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

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

2.3 filter()

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

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

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

预览效果如下图

2.4 some()

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

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

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

2.5 every()

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

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

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

2.6 isArray()

  1. Array.isArray(obj)

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

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

区别:

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

3. 字符串方法

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

  1. str.trim()

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

4. 对象方法

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

  1. 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
  1. var obj = {
  2. id: 1,
  3. pname: '小米',
  4. price: 1999
  5. }
  6. //以前的对象添加和修改属性的方式
  7. obj.num = 1000
  8. obj.pirce = 99
  9. console.log(obj)
  10. //Object.deefineProperty()定义新属性或者修改原有的属性
  11. Object.defineProperty(obj, 'num',{
  12. value: 1000,
  13. })
  14. Object.defineProperty(obj, 'pricee',{
  15. value: 9.9,
  16. })
  17. Object.defineProperty(obj, 'id',{
  18. //如果值为false,则不允许修改
  19. writable: false,
  20. })
  21. Object.defineProperty(obj, 'address',{
  22. value: '中国郑州市',
  23. //如果值为false,则不允许遍历,枚举
  24. enumerable: false
  25. })
  26. console.log(obj)
  27. 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. Linux集群软件安装实战

    一.需求和思路 1. 需求描述 公司有N个节点的集群,需要统一安装一个软件(jdk)需要开发一个脚本程序,实现对集群中的N个节点批量自动下载.安装jdk 2. 思路 1)编写一个启动脚本,用来发送一个 ...

  2. 关于Java中反射的总结

    Java是面向对象的编程语言,万物皆对象,反射技术就是把类声明.类中的字段声明.方法声明.构造函数声明等都看成是对象,从而可以把类中的各个部分拆解出来单独处理,反射技术主要用来编写通用功能,平时编程使 ...

  3. npm基本语法

    npm -version  查看npm版本 npm install <name>  安装node.js的依赖包 npm install <name> @3.0.6 安装版本为3 ...

  4. XRichText

    XRichText是一个可以显示Html富文本的TextView.可以用于显示新闻.商品详情等场景.欢迎star.fork,提出意见. 使用 Gradle : compile 'cn.droidlov ...

  5. 总结oracle18.3c-centos7-安装

    官网下载对应名字rpm包 oracle-database-ee-18c-1.0-1.x86_64.rpm下载依赖包 除非已有依赖 否则会报缺少依赖错误 1 curl -o oracle-databas ...

  6. Jenkins+maven+jmeter+eclipse搭建自动化测试平台

    一.准备工作 1.jmeter准备测试脚本 2.maven环境配置 3.eclipse创建maven项目 4.Jenkins集成项目 二.jmeter准备测试脚本 使用jmeter准备测试脚本(不管录 ...

  7. Java 的 LinkedList 的底层数据结构

    1. 数据结构--LinkedList源码摘要 public class LinkedList<E> extends AbstractSequentialList<E> imp ...

  8. Java中的基本运算符

    一.算术运算符运算符:对常量或者变量进行操作的符号表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式.注意:不同运算符连接的表达式体现的是不同类型的表达式. + 加法运算,字 ...

  9. iOS(Swift)学习笔记之SwiftyJSON的使用

    本文为原创文章,转载请标明出处 1. 通过CocoaPods安装SwiftyJSON platform :ios, '10.0' target '<Your Target Name>' d ...

  10. C#获取代码执行时间(精确到毫秒)

    private void Time(int i) { Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(i); sw.Stop(); C ...