zoukankan      html  css  js  c++  java
  • 前端知识

    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
        }
    })
  • 相关阅读:
    【BZOJ 2120】 数颜色
    【BZOJ 1878】 HH的项链
    【BZOJ 2038】小Z的袜子
    【BZOJ 2724】 蒲公英
    【POJ 2482】 Stars in Your Windows
    【POJ 2182】Lost Cows
    __align(num) 分析
    C# 获取图片某像素点RGB565值
    基于OpenCV的火焰检测(三)——HSI颜色判据
    基于OpenCV的火焰检测(一)——图像预处理
  • 原文地址:https://www.cnblogs.com/yangjie-space/p/13967504.html
Copyright © 2011-2022 走看看