[最基础的一些]

125 阅读3分钟
  • 堆内存的销毁; 谷歌浏览器 定时清除 每隔一段时间就会通篇销毁一次 把JS没有被用到的地址销毁 火狐浏览器 计数清除 根据当前地址引用的个数来决定这个是否要销毁 栈内存: 全局作用域的销毁 只有当页面关闭的时候才会销毁。。 私有作用域的销毁 只要函数的返回值是一个引用数据类型 那么这个作用域就不会被销毁 栈溢出 内存溢出 内存不够用;

  • 闭包() 就是一个变量的保护机制 闭包首先是一个不销毁的作用域,用来保护变量 用来储存值 -属性名和属性值是一个单词的时候 我们可简写成一个单词 利用闭包我们可实现模块化开发; 闭包不能多用;闭包用多了容易引起内存泄露

  •   this
    

箭头函数中没有 this 和 arguments;<-他是把这两个变量对待了 箭头函数在的this 是指向了 上级作用于域的this; this 就是 函数的执行主体

    事件绑定中的this 就是当前绑定的元素
     自执行函数中的this 是window  
     定时器中的this也是window

        this  的指向谁,我们可以通过看点的方式 来确定 函数执行点 前是谁  this就是谁
                                            没点就是window
     ~function(){}();
     !function(){}()  都是自执行函数
     this 普通函数内部的一个关键字  代表函数的执行主体   箭头函数中没有this;(在箭头函数中就是一个普通变量)
    自执行函数中的this 是 window
    定时器中的this 是 window
    事件绑定中的this 是 绑定当前元素
    其他看点  函数执行点前面是谁  函数中的this就是谁, 没点就是window
  • 面向对象

    • //高内聚 低耦合 面向对象: 是一种编程思想; OOP . 面向过程: 也是一种编程思想;

      面向对象: 类的继承 封装 多态 / / 类 实例 人类 --> 马云 (某个人) 猴类 孙悟空 狮子类 辛巴 动物类 人类

    JS中的内置类 Array(数组类) String(字符串类) Number(数字类)Boolean(布尔类) [] '' NaN true false Object(对象类) Nodelist Function (函数类) { }

    */

          var ary = []; //字面量的方式创建的数组类实例;
        var ary2 = new Array () ;// 构造函数的方式创建的数组类实例.两者没有任何区别 
        var ary3 = new Array (12);//参数只有一个数字的的时候,数字代表数组的长度,俩行
    
  • 设计模式

    • /* JS中的几种常见的设计模式 单例模式 工厂模式 构造函数模式 原型模式

    */

    /* 单例模式: 其实就是一个对象 ;可以避免命名冲突的问题 对象名 我们也称为命名空间 单例可以去封装一些'工具函数'库

      高级单例模式:也是一个对象 只是由一个函数返回了一个单例
    

    */

  • 工厂模式:其实就是一个函数

  • 构造函数模式

  • //new 执行函数的时候 函数内部的this 都是指向了一个堆内存 函数执行完成之后 又把this 返出去
      // 若写了返回值 但是返回的是一个值类型 那么默认返回任然是this/.
      //若返回值是个引用数据类型 则返回值就是默认是这个引用数据类型了.
    
      //es6 的箭头函数是不能通过new 的方式执行
      //es6 创造类的方式 是通过 class创造的
    
  • 原型模式
  • 原型模式:在构造函数的基础上加了一个 原型(prototype)的概念
  • //Fn 只能通过 new 的方式执行;