ES5和ES6那些你必须知道的事儿

ES5新增的东西

一、数组方法

  1、forEach

      用途:遍历,循环

    对于空数组不会执行回调函数

//用法

array.forEach(
function(currentValue, index, arr),
thisValue
) //currentValue 必需。当前元素
//index 可选。当前元素的索引值。
//arr 可选。当前元素所属的数组对象。
//thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值 <button onclick="numbers.forEach(myFunction)">点我</button> <p>数组元素总和:<span id="demo"></span></p> <script>
var sum = 0;
var numbers = [65, 44, 12, 4]; function myFunction(item) {
sum += item;
demo.innerHTML = sum;
}
</script>

  2、map

    用途:映射

    map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

    map() 方法按照原始数组元素顺序依次处理元素。

    map() 方法不会对空数组进行检测。

    map() 方法不会改变原始数组

//用法

array.map(
function(currentValue,index,arr),
thisValue
) var numbers = [65, 44, 12, 4]; function multiplyArrayElement(num) {
return num * document.getElementById("multiplyWith").value;
} function myFunction() {
document.getElementById("demo").innerHTML = numbers.map(multiplyArrayElement);
}

  3、filter

      用途:过滤器

    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

          filter() 不会对空数组进行检测。

      filter() 不会改变原始数组。

//用法

array.filter(
function(currentValue,index,arr),
thisValue
) <p>最小年龄: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">点我</button> <p>所有大于指定数组的元素有? <span id="demo"></span></p> <script>
var ages = [32, 33, 12, 40]; function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
} function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
</script>

  4、some

       用法:some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。

     some() 方法会依次执行数组的每个元素:

    •   如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
    •   如果没有满足条件的元素,则返回false。

     some() 不会对空数组进行检测。

     some() 不会改变原始数组。

//用法

array.some(
function(currentValue,index,arr),
thisValue
)
<p>最小年龄: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">点我</button> <p>判断结果: <span id="demo"></span></p> <script>
var ages = [4, 12, 16, 20]; function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
} function myFunction() {
document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
</script> //输出结果为true或者false

  5、every

    用法:every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

    every() 方法使用指定函数检测数组中的所有元素:

    •   如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
    •   如果所有元素都满足条件,则返回 true。

    every() 不会对空数组进行检测。

      every() 不会改变原始数组。

//用法

array.every(
function(currentValue,index,arr),
thisValue
) <p>最小年龄: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">点我</button> <p>是否所有年龄都符号条件? <span id="demo"></span></p> <script>
var ages = [32, 33, 12, 40]; function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
} function myFunction() {
document.getElementById("demo").innerHTML = ages.every(checkAdult);
}
</script> //返回true或者false

  6、indexOf

        用法:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 

//用法

stringObject.indexOf(searchvalue,fromindex)

//该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

//searchvalue    必需。规定需检索的字符串值。
//fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 //indexOf() 方法对大小写敏感! //如果要检索的字符串值没有出现,则该方法返回 -1。 <script type="text/javascript"> var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world")) </script> //输出
//
// -1
//

  7、lastIndexOf

      用法:lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

    stringObject.lastIndexOf(searchvalue,fromindex)

//如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。

//该方法将从尾到头地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的结尾(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一个字符在 stringObject 中的位置。stringObject 中的字符位置是从 0 开始的。

//lastIndexOf() 方法对大小写敏感!

//如果要检索的字符串值没有出现,则该方法返回 -1。

<script type="text/javascript">

var str="Hello world!"
document.write(str.lastIndexOf("Hello") + "<br />")
document.write(str.lastIndexOf("World") + "<br />")
document.write(str.lastIndexOf("world")) </script> //输出
//
// -1
//

  8、reduce

      用法:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

      reduce() 可以作为一个高阶函数,用于函数的 compose。

    reduce() 对于空数组是不会执行回调函数的。

//用法

array.reduce(
function(
total,
currentValue,
currentIndex,
arr
),
initialValue
) //total 必需。初始值, 或者计算结束后的返回值。 //实例:四舍五入后计算数组元素的总和 <button onclick="myFunction()">点我</button> <p>数组元素之和: <span id="demo"></span></p> <script>
var numbers = [15.5, 2.3, 1.1, 4.7]; function getSum(total, num) {
return total + Math.round(num);
}
function myFunction(item) {
document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0);
}
</script>

  9、reduceRight

     reduceRight()方法的功能和reduce()功能是一样的,

    不同的是reduceRight()从数组的末尾向前将数组中的数组项做累加。

ES5和ES6那些你必须知道的事儿(一)的更多相关文章

  1. ES5和ES6那些你必须知道的事儿(三)

    ES5和ES6那些你必须知道的事儿 ES6新增的东西 一.块级作用域:关键字let,常量const let与var的区别: a.不会进行变量声明提升 b.变量不允许被重复定义 c.变量不允许被删除 d ...

  2. ES5和ES6那些你必须知道的事儿(二)

    ES5和ES6那些你必须知道的事儿 ES5新增的东西 二.对象方法 1.Object.getPrototypeOf(object) 返回对象的原型 function Pasta(grain, widt ...

  3. React入门 (1)—使用指南(包括ES5和ES6对比)

    前言 本篇会简明扼要的介绍一下React的使用方法.代码会用JSX+ES5和JSX+ES6两种方式实现. React简介 React来自Facebook,于2013年开源.至今不断修改完善,现在已经到 ...

  4. ES5和ES6中对于继承的实现方法

    在ES5继承的实现非常有趣的,由于没有传统面向对象类的概念,Javascript利用原型链的特性来实现继承,这其中有很多的属性指向和需要注意的地方. 原型链的特点和实现已经在之前的一篇整理说过了,就是 ...

  5. JavaScript面向对象轻松入门之概述(demo by ES5、ES6、TypeScript)

    写在前面的话 这是一个JavaScript面向对象系列的文章,本篇文章主要讲概述,介绍面向对象,后面计划还会有5篇文章,讲抽象.封装.继承.多态,最后再来一个综合. 说实话,写JavaScript面向 ...

  6. JavaScript面向对象轻松入门之封装(demo by ES5、ES6、TypeScript)

    本章默认大家已经看过作者的前一篇文章 <JavaScript面向对象轻松入门之抽象> 为什么要封装? 封装(Encapsulation)就是把对象的内部属性和方法隐藏起来,外部代码访问该对 ...

  7. JavaScript面向对象轻松入门之多态(demo by ES5、ES6、TypeScript)

    多态(Polymorphism)按字面的意思就是"多种状态",同样的行为(方法)在不同对象上有不同的状态. 在OOP中很多地方都要用到多态的特性,比如同样是点击鼠标右键,点击快捷方 ...

  8. JavaScript、ES5和ES6的介绍和区别

    JavaScript由三部分组成: ECMAScript(核心) DOM(文档对象模型) BOM (浏览器对象模型) ES5(ECMAScript第五个版本) strict模式 严格模式,限制一些用法 ...

  9. ES5与ES6的小差异

    ES5与ES6的小差异 变量的定义 ES6与ES5的区别 ES5: <script> console.log(username); var username; var username = ...

随机推荐

  1. 【JVM】-NO.115.JVM.1 -【JDK11 HashMap详解-4-伸展树、B树】

    .Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  2. 010 Editor - Binary Templates

        010 Editor是一款非常强大的文本/十六进制编辑器,除了文本/十六进制编辑外,还包括文件解析.计算器.文件比较等功能,但它真正的强大之处还在于文件的解析功能.我们可以使用010Edito ...

  3. hive sql执行的job在map时报java.lang.OutOfMemoryError的错误

    较为详细且重要的一段报错信息是org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.OutOfMemoryError: ...

  4. haproxy 初识

    官方网站:http://www.haproxy.org 描述 HAProxy的是一个免费的,非常快速和可靠的解决方案,提供 高可用性, 负载均衡和代理对TCP和基于HTTP的应用程序.它特别适用于流量 ...

  5. oracle查询buffer cache中undo大小

    1.Does undo buffer exists or changes will directly write to undo datafiles? Undo blocks are database ...

  6. 【题解】Luogu P2766 最长不下降子序列问题

    原题传送门 实际还是比较套路的建图 先暴力dp一下反正数据很小 第一小问的答案即珂以求出数列的最长不下降子序列的长度s 考虑第二问如何做: 将每个点拆点 从前向后连一条流量为1的边 如果以它为终点的最 ...

  7. ldap 集成harbor

    harbor: 1.6 默认配置文件在harbor.cfg,我们可以先不添加配置,直接在harbor web界面进行配置(harbor 1.6 如果db 启动失败提示postgresql 数据目录已存 ...

  8. bash的基础特性

    命令历史:history 环境变量: HISTSIZE: 命令历史的条数 HISTFILE:~/.bash_history HISTFILESIZE: 命令历史文件记录历史的条数 history -d ...

  9. UVA1388 Graveyard

    思路 就是对于每个点,找出离他最近的目标点的距离 我使用了上取整和下取整实现,蓝书上的实现方法是坐标系缩放,每个点的目标位置就是它四舍五入的结果 具体证明见蓝书 代码 #include <cst ...

  10. 【论文笔记】CBAM: Convolutional Block Attention Module

    CBAM: Convolutional Block Attention Module 2018-09-14 21:52:42 Paper:http://openaccess.thecvf.com/co ...