八股文之:JavaScript + TypeScript

409 阅读2分钟

数据类型

基本类型(栈):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);//[12, 43, 23, 68]

注:new Set输出是的一个对象,需要使用扩展运算符转为数组
    方法1Array.from(new Set(arr)) 
    方法2:[...new Set(arr)]
    上面两个方法效果一致;