基础数据类型与栈内存
JS中的基础数据类型,这些值都有固定的大小,往往都保存在栈内存中,由系统自动分配存储空间。我们可以直接操作保存在栈内存空间的值,因此基础数据类型都是按值访问。
数据在栈内存中的存储与使用方式类似于数据结构中的堆栈数据结构,遵循后进先出的原则。
基础数据类型: Number String Null Undefined Boolean
引用数据类型与堆内存
与其他语言不同,JS的引用数据类型,比如数组Array、对象Object、函数Function,它们值的大小是不固定的。引用数据类型的值是保存在堆内存中的对象。JavaScript不允许直接访问堆内存中的位置,因此我们不能直接操作对象的堆内存空间。
总结:
栈内存 堆内存存储基础数据类型 存储引用数据类型
按值访问 按引用访问
存储的值大小固定 存储的值大小不定,可动态调整
由系统自动分配内存空间 由开发人员通过代码分配
主要用来执行程序 主要用来存放对象
空间小,运行效率高 空间大,但是运行效率相对较低
先进后出,后进先出 无序存储,可根据引用直接获取
JS执行上下文
https://segmentfault.com/a/1190000012646203
JS变量对象详解https://segmentfault.com/a/1190000012646211
请解释变量提升https://segmentfault.com/a/1190000003114255
JS作用域及作用域链/闭包(closure),常用场景举例说明https://segmentfault.com/a/1190000012646221
https://segmentfault.com/a/1190000012646261
请简述JS中的thishttps://segmentfault.com/a/1190000012646234
JS函数与函数式编程https://segmentfault.com/a/1190000012646274
JS原型,原型链。实现继承的方式https://segmentfault.com/a/1190000012646286
JS有哪几种创建对象的方式利用Object构造函数方式创建
利用对象字面量方式创建
利用工厂模式创建
利用构造函数模式创建
利用原型方式创建
利用构造函数和原型的组合模式创建
https://juejin.im/post/5b150fcf518825139b18de11
请解释事件循环,调用堆栈和任务队列的区别https://segmentfault.com/a/1190000012646373
https://zhuanlan.zhihu.com/p/25407758
https://juejin.im/post/58cf180b0ce4630057d6727c
https://blog.csdn.net/lin_credible/article/details/40143961
谈谈对Promise的理解https://segmentfault.com/a/1190000012646402
ES6知识点var let const
=>箭头函数
模版字符串
解析结构
函数默认参数
...展开运算符
class
Promise
https://segmentfault.com/a/1190000012646425
防抖与节流防抖与节流函数是一种最常用的 高频触发优化方式,能对性能有较大的帮助。
防抖 (debounce): 将多次高频操作优化为只在最后一次执行,通常使用的场景是:用户输入,只需再输入完成后做一次输入校验即可。