数据类型
基本类型(栈):null, undefined, boolean, number, string, symbol
引用类型(堆):Object
闭包
当前函数使用了包含它的函数的局部变量
特性:函数内变量不会被垃圾回收,始终保持在内存中
在退出之前记得清除局部变量,否则容易导致内存溢出
原型
原型是一个简单的对象,构造函数可以通过property访问,原型通过constructer访问构造函数,通过构造函数和new出来的函数可以通过__proto__找到原型的过程称谓原型链;
原型链
防抖节流
防抖是指多次执行处理为最后一次执行
节流是指多次执行处理为间隔时间相等并且可调整的多次多次执行
重绘回流
重绘是指页面颜色发生变化浏览器进行的reprint
回流也叫重排reflow,是指页面布局发生变化,字体大小,文字样式等发生变化导致的浏览器重新渲染
栈,堆
基本数据类型的值存储在《栈》里
引用数据类型的指针地址存储在《栈》里,真实数据存储在《堆》里
基本数据类型赋值是在栈里新开辟一个内存进行存放
引用数据类型赋值是在栈里新开辟一个内存进行存储指针地址
赋值,浅拷贝,深拷贝
赋值:基本数据类型拷贝值,引用数据类型是指针
浅拷贝:基本数据类型是值拷贝,引用数据类型是内存数据拷贝,仅支持拷贝第一层的引用类型属性
深拷贝:基本数据类型是值拷贝,引用数据类型是内存数据拷贝,支持递每一层的引用类型
set的使用及去重
let arr = [12,43,23,43,68,12];
let item = [...new Set(arr)];
console.log(item);
注:new Set输出是的一个对象,需要使用扩展运算符转为数组
方法1:Array.from(new Set(arr))
方法2:[...new Set(arr)]
上面两个方法效果一致;