-
堆内存的销毁; 谷歌浏览器 定时清除 每隔一段时间就会通篇销毁一次 把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 的方式执行;