最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 自用

    正文概述 掘金(一條小喇叭)   2021-07-01   313

    防抖

    let debounce = (fn,wait)=>{
        let timer = 0;
        return (...args)=>{
            if(timer)clearTimeout(timer);
            timer = setTimeout(()=>{
                fn.apply(this,args)
            },wait)
        }
    }
    

    节流

    const throttle = (fn, wait) => {
        let isExecuted = true;
        return (...args) => {
            if(!isExecuted)return;
            isExecuted = false;
            setTimeout(() => {
                fn.apply(this, args);
                isExecuted = true;
            }, wait);
        };
    };
    

    深拷贝

    // 思路:拷贝的数据类型分为:基本数据类型、
    const deepClone = (target, map = new Map()) => {
        // 首先处理基本数据类型
        if((typeof target !== 'object' ||  target !== 'function') || target !== null) return target;
        // 判断具体的引用数据类型
        let type = Object.prototype.toString.call(target);
        let cloneTarget;
    
    }
    

    ES6新增的东西

    // let和const:var 存在变量提升和会绑定到全局window对象
    
    // 解构赋值 :数组结构和对象结构
    
    // 箭头函数 特点:形参只有一个可以省略小括号、函数体只有一句话,可以省略大括号,写在一行、不用写return、没有 arguments、this为外部作用域的this、不能作为构造函数
    
    // 扩展运算符
    
    // 新增数组方法
    find() 和 findIndex()
    // find返回找出第一个符合条件的数组成员,否则返回undefined。[1, 4, -5, 10].find((n) => n < 0)  -5
    // findIndex返回找到第一个符合条件的数组成员索引值,不存在则返回-1。[1, 5, 10, 15].findIndex((value)=>  value > 9) 2
    

    www.jianshu.com/p/0120580f3…

    blog.csdn.net/weixin_4493…

    www.cnblogs.com/wasbg/p/111…

    闭包实现模块化

    实现链式操作

    函数想要实现链式调用就必须返回一个实例,比如说数组map之后可以继续调用...

    //创建一个类
    class Person{
      setName(){
        this.name = name;
        return this;
      }
      setAge(){
        this.age = age;
        return this;
      }
    };
    //实例化
    var person= new Person();
    person.setName("Mary").setAge(20);
    
    链式操作的缺点:比如说我原型上的某个方法想返回某个值,就不能再链式调用下去,或者只能放到最后去调用。
    
    链式操作的有点:可以使得异步编程的流程更加清晰,不会像回调函数一样相互耦合,
    jQuery和ES6中的Promise也正是沿用了这一思想,Promise每一个异步任务返回一个Promise对象,
    通过then方法指定回调函数。
    

    属性的.和[]

    this.xxx 和 this['xxx' + a] 是一样的
    
    一开始JS引擎只有this['xxx'],现在写this.xxx其实JS引擎也会内部转成this['xxx']
    

    常见的运算符

    算术运算符

    加减乘除取余、自增、自减
    

    赋值运算符

    =、+=、-=、*=、/=、%=、按位与赋值(&=)、按位或赋值(|=)、按位非赋值(~=)、
    

    位运算符

    按位与(&)、按位或(|)、按位非(~)、按位异或(^)、<<左移、>>右移、>>>有符号右移
    
    二进制:512 256 64 32 | 16 8 4 2 1(左右手)
    负数:将正数1和0互换再加上1   -9 =>1001=>0110+1=> 1111 1111 1111 1111 1111 1111 1111 0111
    
    按位非(NOT)
    ~25 => -(25)-1  => -26
    ~~25 => -(25)-1  => -26 => -(-26)-1 => 25
    
    按位与(AND)
    25 & 3 => 11001 & 00011 => 找同时存在1的位数,才取1 => 00001 => 1
    
    按位或(OR)
    25 | 3 => 11001 & 00011 => 找存在1的位数,就取1 => 11011 => 27
    
    按位异或(XOR)
    25 ^ 3 => 11001 & 00011 => 找存在1的位数,就取1,同时存在,则不取 => 11010 => 26
    var a=10,b=9; a ^= b, b ^= a, a ^= b; //a=9,b=10
    
    
    <<左移
    -2<<5 => 2的二进制为10,全部向做移5位 => 0000010-> 1000000 => -64
    
    >>右移
    该操作符会将第一个操作数向右移动指定的位数。向右被移出的位被丢弃
    -9 >> 2 => 1001 -> 10 => -2
    
    >>>有符号右移
    正数>>>和>>结果一样,负数>>>数值会很大
    
    取整:
    ~~3.9 => 3
    3.9 | 0 => 3
    3.9 ^ 0 => 3
    3.9 << 0 => 3
    

    需要注意的关键字

    in

    1.配合for遍历对象。
    2.判断某个属性属于某个对象(包括原型链上的原型)
    如:
    "make" in {make: "Honda", model: "Accord", year: 1998}  // returns true
    0 in ["redwood", "bay", "cedar", "oak", "maple"]        // returns true
    "length" in trees // returns true (length is an Array property)
    

    instanceof

    一个对象能否通过原型链找到另一个对象的原型

    www.runoob.com/jsref/jsref…


    起源地下载网 » 自用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元