前端知识点汇总—面试看这一篇就够了 (5)

基础数据类型与栈内存
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中的this

https://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): 将多次高频操作优化为只在最后一次执行,通常使用的场景是:用户输入,只需再输入完成后做一次输入校验即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxszg.html