es6的新增方法和es5数组的一些方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // 大多数情况下,es5的数组方法接受的第一个参数为一个函数,并且对数组的每个元素调用一次该函数。
        // 该函数有三个参数:数组元素,元素的索引和数组本身。
        // 如果有第二个参数,则第一个参数中的this指向第二个参数。

        var arr= [1,2,3,4,5];
        var result;
        //forEach()=============================
        //从头到尾遍历数组,为每个元素调用指定的函数。
        //返回值:undefined 无
        //原数组不改变
        //计算和
        // var sum =0;
        // arr.forEach(function(val,index,a){
        //     sum+=val;
        //     console.log(val,index,a)
        // })
        // console.log(sum,arr);

        // //每个数组元素值+1
        // result=arr.forEach(function(val,i){
        //     arr[i]=val+1;
        //     // break;  //直接break会报错,forEach中没法终止遍历
        // })
        // console.log(arr);
        // console.log(result);  //undefined 

        //map()======================================
        //将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值
        //原数组不改变,而会返回一个新数组
        // result = arr.map(function(x){
        //     return x*x;   //一定要有return,否则返回undefined
        // })
        // console.log(result,arr);

        //filter()====================================
        //filter方法返回的数组元素是调用的数组的一个子集。传递的函数是用来逻辑判定的。该函数返回true或false。
        //原数组不改变
        // var result1 = arr.filter(function(v,i,a){
        //     return v>3;
        // })   // [4, 5]
        // console.log(result1)
        // var result2= arr.filter(function(v){
        //     return v%2;
        // })   //[1, 3, 5]
        // console.log(arr,result2);

        // // filter方法可以把稀疏数组中的空元素筛出去
        // var result3 = arr.filter(function(v){
        //     return v!=undefined &&v!=null;
        // });
        // console.log(arr,result3);

        // every()和some()============================
        //every和some是数组的逻辑判定:他们对数组元素应用指定的函数进行判定,返回true或false
        // every()方法就像数学中的“针对所有”的量词:当且仅当针对数组中的所有元素调用判定函数都返回true,它才返回true
        // result = arr.every(function(x){
        //     return x<10;
        // })
        // console.log(result);
        // result = arr.every(function(x){
        //     return x%2===0;
        // })
        // console.log(result);
        // some()方法就像数学中的“存在”的量词:当数组中至少有一个元素调用判定函数返回true,它就返回true,并且当且仅当数值中的所有元素调用判定函数都返回false,它才返回false
        // result = arr.some(function(v){
        //     return v%2===0;
        // })
        // console.log(result);

        //一旦every()和some()确认该返回什么值他们就会停止遍历数组元素
        // some在判定第一个元素返回true就停止遍历返回true,否则遍历整个数组直到遇到true
        // every在判定第一个元素返回false就停止遍历,否知就一直遍历直到遇到false为止

        //reduce()和reduceRight()=====================
        //reduce()和reduceReight()方法使用指定的函数将数组元素进行组合,生成单个值。这在函数式编程中是常见的操作,也可以称为“注入”和“折叠”
        //返回值为化简函数最后一次返回的结果
        //数组求积
        // var product = arr.reduce(function(x,y,z,a){
        //     console.log(x,y,z,a);
        //     return x*y;
        // })
        // console.log(product);
        // //数组求和
        // var sum = arr.reduce(function(x,y,z,a){
        //     console.log(x,y,z,a);
        //     return x+y;
        // });
        // console.log(sum);
        // //数组求最大值
        // var max = arr.reduce(function(x,y){
        //     return x>y?x:y;
        // })
        // console.log(max);
        // reduce()需要两个参数。第一个是执行化简操作的函数。化简函数的任务就是用某种方法把两个值组合或化简为一个值,并返回化简后的值。
        //化简函数function(初始值或者上一次化简函数的返回值,数组元素,元素的索引,数组本身)
        // 第二个参数是一个传递给函数的初始值,当不指定初始值时,他将数组元素的第一个值作为其初始值

        // reduceRight()=====================
        // reduceRight()的工作原理和reduce()一样,不同的是它按照数组索引从高到低(从右到左)处理数组。
        // var product = arr.reduceRight(function(x,y,z,a){
        //     console.log(x,y,z,a);
        //     return x*y;
        // },1)
        // console.log(product);

        //indexOf()和lastIndexOf()=====================
    </script>
</body>
</html>
1.let
块作用域
const
常量,不能二次赋值

2.箭头函数
(参数)=>{逻辑代码}

参数为1时
参数=>{}

参数不为一时
()=>{}

返回值为值类型
()=>1
返回值为对象时
()=>({a:a})
其他情况
()=>{}

箭头函数中的this跟包裹他的代码共享this,通常用在回调函数中
setTimeout(()={},1000)

3.增强的对象字面量
var o={
    __proto__:parent,   //继承
    name,            //属性简写
    fun(){            //方法简写
        super.fun();     //调用父级对象上的方法
    },
    ["prpp"+(()=>10)]:110    //动态属性
}

4.类
class extends constructor super static

class 类名{
      constructor(构造函数的参数){
    this.属性名=“”

    }
    //公有方法
    fun(参数){
        //逻辑代码
        return
    }
    //静态方法的定义
    static fun(){}

}

var a = new 类名();
静态方法的调用
类名.方法名();

子类

class 子类 extends 父类,父类{
    constructor(){
        super();   //继承父类上的属性方法以及静态方法
        this.子类的属性
    }
    //子类的方法
    fun(){
        super.fun()

    }

}

5.模板字符串
var str = `
    ${变量名}

`

6.解构

es6按照一定的模式从数组和对象中提取值,

7.默认参数
function f(x,y=10){

}
不定参数
function  fun(x,...y){

}

fun(1,1,2,3)

扩展运算符...
function fun(x,y,z){

}
fun(...arr)

原文地址:https://www.cnblogs.com/bao2333/p/10195217.html

时间: 2024-10-10 14:47:23

es6的新增方法和es5数组的一些方法的相关文章

es6中reduce()方法和reduceRight()方法

es6中reduce()方法从左往右开始 参数:prev:它是上一次调用回调时返回的结果,每次调用的结果都会给prev cur:当前的元素 index:当前的索引 arr:循环的数组 返回值:函数累计处理的结果 demo:求数组的和. var a = [1,2,3,4,5,6,7,8,9,10] var str = a.reduce(function(prev,cur,index,arr){ return prev + cur ;})str // 55;求阶乘 var a = [1,2,3,4,

java static成员变量方法和非static成员变量方法的区别

这里的普通方法和成员变量是指,非静态方法和非静态成员变量首先static是静态的意思,是修饰符,可以被用来修饰变量或者方法. static成员变量有全局变量的作用       非static成员变量则没有全局变量的作用        局部变量是类的方法里面的变量静态static成员变量是指类的成员变量,他不属于类的对象,只单独属于类,被所有对象共享.当在类中改变他的值时,他在每个对象里面的值都会随之改变. 这也就是说在对象中不能改变他的值,只能在他所在的类中改变,如果他带有final的话(sta

详解Integer.toString(int i)方法和String.valueOf(int i)方法

通过查看String类的源码: public static String valueOf(int i) { return Integer.toString(i); } 我们可以看到,String.valueOf(int i)其实是调用了Integer.toString(int i)方法的. 再次通过查看Integer类的源码我们可以看到: public static String toString(int i) { if (i == Integer.MIN_VALUE) return "-214

李洪强iOS开发之OC语言description方法和sel

OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 使用@%打

Javascript中数组的判断方法

摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.isArray(). 以上为数组检测的方法,但是这些方法中: Array.isArray()方法是最为简单方便的方法,但是存在版本支持性问题,没有版本支持性问题且较好的检测方法是使用Object.prototype.toString结合call()方法来检查,通常数组检测中我们常用的做法是两种方法结合

java 数组的 toString 方法和 equals 方法以及 java.lang.Object 对象的 toString 方法和 equals 方法

1 public class Test { 2 public static void main(String[] args) { 3 int[] a = {1, 2, 4, 6}; 4 int[] b = a; 5 int[] c = {1, 2, 4, 6}; 6 7 //下面这个方法打印的是a数组的引用地址 8 System.out.println(a.toString()); 9 //下面这个方法比较的是两个数组的引用是否相等 10 System.out.println("a.equals

【js】数组的splice方法和slice方法的区别

1.splice方法和slice都是数组的方法 2.splice方法有3种作用 例如,arr=[1,2,3,4,5,6]; splice方法 删除  arr.splice(1, 1); 返回值为删除的元素,类型为object  替换  arr.splice(1, 1, 'a'); 返回值为被替换的元素,类型为object  插入 arr.splice(1, 0, 'a', 'b'); 返回值为一个空数组,类型为object 注意:得到的新数组为[1,'a','b',2,3,4,5,6] 3.sl

数组 slice方法和splice方法的区别

一.slice() 方法 slice()方法可以从已有的数组中返回选定的元素. 语法: arrayObject.slice(start,end) 参数: start:(截取开始位置的索引,包含开始索引)必须,规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.(-1指的是最后一个元素,-2指倒数第二个元素,以此类推). end:(截取结束位置的索引,不包含结束索引)可选,规定从何处结束选取.该参数是数组片段结束处的数组下标,如果没有指定该参数,那么切分的数组包含从 start(开

ES6标准学习: 4、数组的扩展

数组的扩展 一.类数组对象与可遍历对象转换为数组 Array.from()方法用于将类数组对象.可遍历对象转换为数组,其中可遍历对象包括es6新增的set和map结构 所谓的类数组对象,本质特征是必须拥有length属性 1 let arrayLikeObj = { 2 '0': 'a', 3 '1': 'b', 4 '2': 'c', 5 length: 3 6 } 7 8 ES5转换为数组: 9 let arr = [].slice.call(arrayLikeObj) // ['a', '