es6

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言

数组方法

Array.from(类数组,?ck)
  • 功能:把类数组转化成真正的数组
  • 类数组:length就靠谱
  let lis = Array.from(document.querySelectorAll('li'),function(item){
      return item.innerHTML
     });
  console.log(lis)

 let [name,pwd] = document.querySelectorAll('input');
  console.log(Array.isArray(lis));

let obj = {
   name:'name',
    age:'age',
     length:2
     };
  console.log(Array.from(obj))
  • Array.slcie.call() //转数组
  • [].slice.call(); //转数组
Array.of(一组数据)
  • 功能:把一组数据转成数组
  • 弥补了Array()不足
  • 如果没有参数就返回空数组
let arr4 = Array.of(1,2,3,4);
console.log(arr4) [1,2,3,4]
console.log(Array.of(10)) //[10]
console.log(Array(10))  //长度为10
conpyWidthin
  • Array.prototype.copyWithin(target,?startIndex=0,?endIndex=this.length)
  • 功能:替换数组 修改原数组 不包括最后一个
  • target:从该位置开始替换
3号位复制到0号位
[1, 2, 3, 4, 5].copyWithin(0, 3, 4)
// [4, 2, 3, 4, 5]

let arr6 = ['a','b','c','d'];
console.log(arr6.copyWithin(0,2));  //['c','d','c','d']
//d替换b
console.log(arr6.copyWithin(1,3));
console.log(arr6.copyWithin(1,-2,-1)) 
startIndex:
  • 从该位置开始读取数据 负数 倒数
endIndex
  • 从该位置结束读取数据 负数 倒数
find
  • Array.prototype.find(function(item,index,array){})
  • 功能:查找数组第一个匹配项
  • 没查到:undefined
[1, 5, 10, 15].find(function(value, index, arr) {
 return value > 9;
}) // 10

findIndex
  • Array.prototype.findIndex(function(item,index,array){})
  • 功能:查找数组第一个匹配项的下标
  • 没查到:-1
var c = [1, 3, 4, 55, 7].findIndex(function(item, index, array) {
   return item === 5;
})
console.log(c)   //-1
fill
  • Array.prototype.fill(填充的内容,?startIndex,?endIndex)
  • 功能:填充数组
  • 不包括最后一项
 console.log(arr6.fill({name:'lili'},1,4));
 ['a', 'b', 'c'].fill(7)
  // [7, 7, 7]
  
第一个参数为待填充的值,第二和第三参数可选,分别表示填充的起始和结束位置(不包括)['a', 'b', 'c'].fill(7,1,2)
//['a', 7, 'c']
includes
  • Array.prototype.includes(检测的元素)
  • 功能:查找数组是否包含指定字符
  • 返回值:Boolean
[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false
[1, 2, NaN].includes(NaN); // true ,NaN用includes判断是和自身相等的
let arr9 = [NaN]
console.log(arr9.includes(NaN));  //true
indexOf() NaN的操作
let arr9 = [NaN]
console.log(arr9.indexOf(NaN))  //-1
flat
  • Array.prototype.flat(?num=1)
  • 功能:把嵌套的数组拉平 扁平化处理
  • num:拉平的层级
let arr10 = [1,2,3,4,[5,[6]]];
// console.log(arr10.flat(2))
flatMap
  • flatMap()方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。
 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
entries()、keys()、values()
  • 用于遍历数组,可以用for…of循环进行遍历。区别是keys()是对键名的遍历、values是对键值的遍历、entries()返回的是数组,也是对键值对的遍历。
for (let index of ['a', 'b'].keys()) {
 console.log(index);
}
// =>0
// =>1

for (let elem of ['a', 'b'].values()) {
 console.log(elem);
}
// =>'a'
// =>'b'

for (let [index, elem] of ['a', 'b'].entries()) {
 console.log(index, elem); //0 -a  1-b
}
数组排序
var arr = [1, 3, 4, 5, 7, 2, 33];

function sort(arr) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr.length - i - 1; j++) {
            var temp;
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}
console.log(sort(arr));

数组对象排重 new Set();
let arr = [3, 5, 2, 2, 5, 5];
let unique = [...new Set(arr)];
console.log(unique);
数组去重排序 new Set sort
let arr = [5,9,1,5,1,80,2,5];
arr = Array.from(new Set(arr));
arr.sort((a,b)=>{return a-b;});
对象的方法
defineProperty
  • 添加键值对,或者替换键值
enumerable:
  • 为true时,可枚举(就是可以用for in循环):不可枚举(不能for循环)
writeable:
  • 为true时,可枚举->可以编辑修改
writeable
  • flase时,补课枚举->不可编辑修改
configurable:
  • true可以配置,他是用于删除属性的。
getOwnPSropertyDeScriptor
  • 表示获取对象的自身属性的一个描述,同时也能获取数据属性。
例子:

const obj1 = {
    name: "zs",
    age: 12
}

Object.defineProperty(obj, "sex", {
    value: "man",
    enumerable: true, //变成可枚举的
    writable: true, //可写可编辑修改sex 属性
    configurable: true, //可配置  用于删除属性
    set: function() {
        obj["sex"] = "man"
    },
    get: function() {
        return "man";
        //get函数返回值就是给属性设置属性值
    }

     get set不能和以上属性共存
     get 会在获取属性时执行  console.log(obj.sex)
     set会在设置属性值时候执行obj["sex"]="man" 
})
obj1.sex = "mai"
     delete obj.sex; //删除sex属性
     Object.getOwnPropertyDescriptor(obj, "name") 获取对象自身属性的一个描述 获取四个数据属性
     console.log(obj)
     const obj2 = {
         sex: "da"
     }
     const obj = Object.assign({}, obj1, obj2) 合并可枚举属性
     Object.is(val1, val2) //判断两个值是否全等 ===

访问属性

set
  • set:会在设置属性时执行 obj[“sex”]=“man”,
get
  • get:会在获取属性时执行 console.log(obj.sex);
assign
  • 合并可枚举的属性(也就是可以循环的属性)
is
  • is:是判断两个值是否全等。===
delte
  • 表示删除属性的。

注意点:访问器属性和数据属性之间两者不能共存.如果共存之间会报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值