Java教程

javascriptES6+js高级

本文主要是介绍javascriptES6+js高级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.let和const命令

1.let

let声明变量,没有变量提升

let是一个块级作用域

let不能重复声明

2.const

const声明常量,一旦被声明,无法改变

2.set和map的理解

应用场景Set用于数据重组,Map用于数据储存

Set: 
(1)成员不能重复
(2)只有键值没有键名,类似数组
(3)可以遍历,方法有add, delete,has
Map:
(1)本质上是健值对的集合,类似集合
(2)可以遍历,可以跟各种数据格式转换

3.深拷贝和浅拷贝

1.浅拷贝

什么是对象的浅拷贝?

将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用

简单的理解就是拷贝了对象的第一层属性,如果对象的某个属性还有第二层,第三层的数据,浅拷贝是访问不到的。比如说某个属性的值是对象,那浅拷贝无法复制该对象的数据。

浅拷贝怎么使用?

btn() {
    this.list.push(
    this.copy(this.stu)
)
},
copy(obj) {
    let newObj = {}
    for(let i in obj) {
        console.log(obj[i])
        newObj[i] = obj[i]
}
    return newObj;
}

2.深拷贝

什么是对象的深拷贝?

创建一个新的对象和数组,将原对象的各项属性的值拷贝过来,是“值”而不是“引用”

深拷贝怎么使用?

作者也不会

4.防抖

用户触发事件过于频繁,只要最后一次事件的操作

let t = null;
inp.oninput = function(){
    if(t !== null){
        clearTimeout(t)
    }
    t = setTimeout(()=>{
        console.log(this.value)
    },500)
}

5.节流

用户触发事件过于频繁,控制执行次数

let flag = true
window.onscroll = function() {
    if(flag) {
        setTimeout(() => {
            console.log(123)
            flag = true
        },500)
    }
    flag = false
}

6.对闭包的理解

使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。
闭包有三个特性:
1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收

7.原型与原型链

1.什么是原型?

每一个对象都有它的原型对象,它可以使用自己原型对象上的属性和方法

2.原型的获取方法

1.通过对象的__proto__获取

2.通过构造函数的prototype获取

3.原型链继承

让子类拥有父类的资源

8.什么是面向对象?

把任何的数据和行为抽象成一个形象的对象是面向对象。

面向对象主要有三大特性

继承:子级继承父级属性和方法

封装:封装一个方法function 放到一个对象里面去

多态:重载:根据传递参数的不同展现不同的形态,重写:子级继承父级属性和方法,感觉不好用,自己在进行重写。

这篇关于javascriptES6+js高级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!