• 前端知识


    1.数据类型

    String Number Boolean Object Null Undefined Symbol(es6)

    2.深拷贝和浅拷贝

    浅拷贝:创建一个新的对象 将原有的对象属性值完整的拷贝过来,包括原始的类型值和引用类型的内存地址 只拷贝第一层

    const obj2 = Object.assign({}, obj);

    深拷贝:拷贝所有的属性值,以及属性地址指向的值的内存空间

    JSON.parse(JSON.stringify(obj))是最简单粗暴的深拷贝

    lodash中的_.clone(obj, true)等价于_.cloneDeep(obj) 两个方法

    3.数组的常用方法

    concat pop() push() join() split() map() foreach()  filter() reduce() some() every() 

    4.this的问题

    可以理解为谁调用指向谁

    5.call apply bind

    都能改变this指向,

    第一个参数都是指向的this,

    bind返回函数需要bind()调用  call第二个参数以此逗号隔开, applay第二个参数放在一个数组

    6.防抖和节流

    防抖: 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时

    function debounce(fn,delay){
        let timer = null;
        return function(){
            if (timer) {
                clearTimeout(timer)
            } 
            setTimeout(fn, delay)
        }
    }

    节流: 使得一定时间内只触发一次函数。原理是通过判断是否到达一定时间来触发函数

    function throttle (fn,delay){
        var timer = null;
        var pre = Date.now();
        return function(){
            var ctx = this;
            var next = Date.now();
            if(next-pre >= delay){
                fn.applay(ctx,arguments)
                pre = Date.now()
            }else{
                timer = setTimeout(fn, delay)         
            }
        }
    }

    7.Object.defineProperty()中get和set

    var _nv;
    var v = {}
    
    Object.defineProperty(v,'11',{
        get:function(){
            return _nv
        },
        set:function(nv){
            _nv = nv
        }
    })
  • 相关阅读:
    数据库事务的四大特性以及事务的隔离级别
    informer使用示例
    Linux内存、Swap、Cache、Buffer详细解析
    浏览器访问百度的整个过程
    安装zookeeper
    配置java环境
    promethues开发
    go mod常用操作说明
    redis使用基础
    channel的声明和使用
  • 原文地址:https://www.cnblogs.com/yangjie-space/p/13967504.html
Copyright © 2020-2023  润新知