zoukankan      html  css  js  c++  java
  • ES6

    ES6
    es6模式主要有一下限制
    1. 变量必须声明后在使用
    2. 函数的参数不能有同名属性,否则报错
    3. 不能使用with语句
    4. 不能对只读属性赋值,否则报错
    5. 不能使用前缀 0 表示八进制,否则报错
    6. 不能删除不可删除的属性, 否则报错
    7. 不能删除变量 delete prop,会报错,只能删除 delete global[prop]
    8. eval不会再他的外层作用域引入变量
    9. eval和arguments不能重新被赋值
     
     
    var声明的变量会挂载在window上,而let和const声明的变量不会:
    二、var声明变量存在变量提升,let和const不存在变量提升
    三、let和const声明形成块作用域
    四、同一作用域下let和const不能声明同名变量,而var可以
    五、暂存死区
    六、const
    一旦声明必须赋值,不能使用null占位。
    声明后不能再修改
    如果声明的是复合类型数据,可以修改其属性
    常量的含义是指向的对象不能修改, 但是可以改变对象内部的属性







    // 为 axios 挂载 全局的请求根路径
    axios.defaults.baseURL = '要挂载的地址'
     
    findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引,否则返回 -1 
      语法: array.findIndex(callback[,thisArg])
      参数: callback 针对数组中的每个元素,都会执行该回调函数,执行时会自动传入下面三个参数
        element 当前元素   index 当前元素的索引  array 调用findIndex的数组
    thisArg 可选 执行callback是作为this对象的值 
    作用:
      解决回调地狱的问题
        回调地狱,值的是回调函数中,嵌套回调函数的代码形式,如果嵌套的层级很深,就是回调地狱
        回调地狱 不利于代码的阅读,维护和后期扩展 
    Promise 是一个异步操作,分为三种状态:Pending(进行中),Resolved(已完成,又称 Fulfilled)和Rejected(已失败)
    特点:
    一旦状态改变,就不会再变,任何时候都可以得到这个结果
    与事件的区别:事件错过了的话再去监听 是得不到结果的
    缺点
    1.无法取消Promise 一旦新建 它就会立即执行 无法中途取消
    2.如果不设置回调函数,Promise内部抛出的错误,不会反映到外部
    3.当处于Pending状态是,无法得知目前进展到哪一阶段(刚开始还是即将完成)
    创建形式
    const p = new Promise(function(successCb,errorCd){ // 在这个function中定义具体的异步操作 }) 
     
    filter()
     
    includes()
     
     includes() 方法 是用来判断一个数组是否包含一个指定的值,根据情况,如果包含返回true,不包含返回false 
      注意:对象数组不能使用 includes方法来检测
    语法: array.includes(valueToFid[,forIndex]) 
      vlaveToFid 需要查找的元素值
      fromIndex 可选  
        从fromIndex索引开始厂子valueToFid.如果为负数,则按升序从array.length+fromIndex的索引开始搜索(及使从末尾开始往前跳 fromIndex的绝对值个索引,然后往后搜寻)默认为0
     
     for...of  
    for...of语句创建一个循环来迭代可迭代的对象, 在ES6中引入for...of循环, 一替代 for...in 和 forEach(), 并支持新的迭代协议, for..of 允许遍历Array(数组)、Strings(字符串)、Maps(映射)、Sets(集合)等可迭代的数据结构等
    语法: for(let 自定义名称 of 数组名) { 循环体 }
    for( variable of iterable) {
          statement
        }
    variable 每个迭代的属性值被分配给该变量
    iterable 一个具有枚举属性并且可以迭代的对象
     案例
    var arr = [
            { name:'nick', age:18 },
            { name:'freddy', age:24 },
            { name:'mike', age:26 },
            { name:'james', age:34 }
        ];
    for(var item of arr){    
        console.log(item.name,item.age);
        }
    输出结果:
    nick, 18
    freddy. 24
    mike, 26
    james, 34
     
     for(let i 数组名) { 循环体 }
     
     ES6数组去重
    Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员),操作方法有:add(value)、delete(value)、has(value)、clear();遍历方法有:keys()、values()、entries()、forEach()
    1.ES6----new Set方法
    const myArray = [1,1,2,3,2,4,5,6,5,7,8,6]
    console.log([...new Set(myArray)]) // 1 2 3 5 6 7 8
    2.array.from(该方法可以将set结构转为数组)
     function aaa(array) {
          return Array.from(new Set(array))
        }
        console.log(aaa([1,1,1,2,2,2,3,3,5])) // [1, 2, 3, 5]
     
     
     findIndex() 方法
    findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
    findIndex() 方法为数组中的每个元素都调用一次函数执行:
    • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
    • 如果没有符合条件的元素返回 -1
    注意: findIndex() 对于空数组,函数是不会执行的。
    注意: findIndex() 并没有改变数组的原始值。
     参数:
    参数
    描述
    function(currentValue, index,arr)
    必须。数组每个元素需要执行的函数.
    函数参数
    参数 描述
    currentValue 当前元素
    index 当前元素的索引
    arr 当前元素所属的数组对象
    thisValue
    可选。 传递给函数的值一般用 "this" 值。
    如果这个参数为空, "undefined" 会传递给 "this" 值
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     示例:
    const bookArr=[
        { id:1, bookName:"三国演义" },
        { id:2, bookName:"水浒传" },
        { id:3, bookName:"红楼梦" },
        { id:4, bookName:"西游记" }
    ];
    var i=bookArr.findIndex((value)=>value.id==4);
    console.log(i);// 3
    var i2=bookArr.findIndex((value)=>value.id==100);
    console.log(i2);// -1
     
    find()方法
    该方法主要应用于查找第一个符合条件的数组元素。它的参数是一个回调函数。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。
    为true: 找到后立即返回。返回的结果为查找到的元素:
    为false: 返回undefined:
     
    filter()方法
    filter()与find()使用方法也相同。同样都接收三个参数。不同的地方在于返回值。filter()返回的是数组,数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素。如果条件不满足,filter()返回的是一个空数组,而find()返回的是undefined
    示例:
    var myArr = [1,3,4,5,6,3,7,4];
    console.log(myArr.filter((value,index,arr)=>arr.indexOf(value)===index));
    //[ 1, 3, 4, 5, 6, 7 ]
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    aaaa
     
     

    该方法主要应用于查找第一个符合条件的数组元素。它的参数是一个回调函数。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。

  • 相关阅读:
    memcached客户端memadmin安装使用
    git之一: 在windows下安装git和使用总结
    nginx常用命令
    mysql授权 REVOKE 添加用户等
    mysql密码忘记解决
    个人常用alias
    解决zabbix图形界面中文乱码
    JsonPath的使用
    Httpclient 支持https(转)
    字符串拼接‘+’实现
  • 原文地址:https://www.cnblogs.com/maxiag/p/11028013.html
Copyright © 2011-2022 走看看