ES6属性

Es6

变量声明

let:

  • 存在块级作用域

  • 在同一作用域内不允许重复声明变量

  • 存在暂时性死区,只有等到声明变量代码出现,才可以获取和使用变量

  • 可以修改变量

相比 var 优点

 for (var index = 0; index < array.length; index++) {  
        }
        console.log(index)
        //var 输出    index=5
        //let     报错

const:

  • 存在块级作用域

  • 在同一作用域内不允许重复声明变量

  • 存在暂时性死区,只有等到声明变量代码出现,才可以获取和使用变量

  • 不可以修改变量

优先级:const ------> let --------> var

扩展运算符

合并数组

let arr1=['zhiv','JavaScript',1,2,3]
        let arr2=['year',2024]
        let arr=[...arr1,...arr2]
        console.log(arr)

合并对象:只在第一层进行深拷贝

let obj1={
            name:"lili",
            age:20
        }
        let obj2={
            phone:{
               lihua:123546
                },
            sex:"女"
        }
        let obj={...obj1,...obj2}
        console.log(obj)

1维数组:深拷贝

2维数组:仅实现第一层深拷贝

数组的结构赋值
 var list=[1,2,3,4,5,6,7,8,9]
            var [a,b,c,...d]=list
            console.log(d)//输出4,5,6,7,8,9

构造函数:Person

  • 用 new关键字调用的,首字母大写

  • 没有 return 返回值,默认返回this

function Person1 (name) {
        this.name = name
        return 'zhangsan'//最终还是会返回this
        }
        var p1 = new Person1('Tom')
        console.log(p1)
  • return复杂数据类型(对象),返回that对象,this对象丢失

    function Person(){
                    this.name=name
                    var that=[1,2,3,4]
                    return that
                }
                var Person=new Person("jack")
                console.log(Person);
                //輸出:1,2,3,4Array.from()

实例成员:实例对象进行访问

function Person(name) {
                this.name=name//实例成员
            }
            console.log(Person.name)//实例对象进行访问

静态成员:构造函数进行访问

Person.height='166'//静态成员
var p1=new Person("tom")//访问时:undefined
console.log(Person.height)//构造函数进行访问

实例化对象

var p1=new Person("tom")
map函数
  • 键可以是任意值,包括函数、对象或任意基本类型

  • 在频繁增删键值对的场景下表现更好

  • 默认情况下不包含任何键,只含显式插入键

  • 键是有序的,返回按顺序返回

    简单使用

    var map=new Map()
                //设值
                map.set('a',1)
                map.set('v',4)
                //取值
                console.log(map.get('a'))//1
                //覆盖
                map.set('a',3)
                console.log(map.get('a'))//3
                //检查类似数组的length
                console.log(map.size)//2
                //删除
                map.delete('a')
                console.log(map.size)//1

            var list=["dkj",12,45]
            newList=list.map(function (n) {
                console.log(n)
                //输出 dkj 12 45
                return n*2
            })
            console.log(newList)
            //输出[NaN, 24, 90]

map.size:键值对的数量

map.clear:移除所有键值对

map.selete:删除指定键值对

箭头函数

var f=x=>({name:1})
键名,属性名相同时可以进行简写
var bo={foo:foo}
var bo={foo}
var o={
                method(){
                    return "Hello"
                }
            }
            //等同于
 var o={
                method:function(){
                    return "Hello"
                }
            }

注:简写对象方法时不能用作构造函数

对象的结构赋值

 var obj={
                c:{
                    aa:1,
                    bb:22,
                    cc:{
                        aaaa:1111111
                    }
                }
            }
            var msg=obj.c.aa
            console.log(msg)//输出1
            var msg1=obj.c.bb
            console.log(msg1)//输出22
            var {aa,bb,cc}=obj.c
            console.log(aa)//输出1
            console.log(bb)//输出2

super关键字

  • 指向当前对象的原型对象

  • Object.setPrototypeOf():设置一个对象的原型对象

  • Object.getPrototypeOf():读取一个对象的原型对象

    var proto={ foo:'hello'}      
    var obj={foo:'world',   
             find(){return super.foo } }  
    //为obj设置原型对象            
    Object.setPrototypeOf(obj,proto)   
    obj.find()             
    console.log( obj.find())//输出hell

属性遍历

对象新增方法

Object.is
  • 判断两个值是否相等,与===行为一致

  • 不同:+0不等于-0,NaN等于自身

    +0===-0   
    NaN===NaN         
    Object.is(+0,-0)    
    console.log(Object.is(+0,-0));//fslse  
    Object.is(NaN,NaN)         
    console.log(Object.is(NaN,NaN));//true
Object.assign()
  • 用于对象合并,将源对象source可枚举的属性,复制到目标对象target

  • Object.assign()方法第一个参数是目标对象,后面对象是源对象

  • Object.assign()方法是浅复制,遇相同会覆盖

                var target={a:1,b:2}
                var source={b:3,c:5}
                var source1={c:7}
                Object.assign(target,source,source1)
                console.log(target)//输出a:1,b:3,c:7
Object.keys()
  • 返回自身的(不含继承)所有可遍历,属性的键名的数组

    var obj={name:"lili",age:23}
    Object.keys(obj)
    console.log(Object.keys(obj))
    //输出 name,age
Object.values()
  • 返回自身的(不含继承)所有可遍历,属性对应值的数组

    var obj={name:"lili",age:23}
    Object.values(obj)
    console.log(Object.values(obj))
    //输出lili,23
Object.entries()
  • 返回自身的(不含继承)所有可遍历,属性键值对的数组

var obj={name:"lili",age:23}
Object.entries(obj)
console.log(Object.entries(obj))
Object.formEntries()
  • 将键值对数组转化为对象

     var obj=Object.fromEntries([
                    ["lili","boy"],
                    ["bu",42]
    
                ])
                console.log(obj)
                //输出{lili: 'boy', bu: 42}

filter函数

  • 不会对空数组进行检测

  • 不会改变原始数组

                var list=["dkj",12,45]
                list.filter(function (n) {
                    console.log(n)
                    return n>3
                })

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值