网站首页 > 技术文章 正文
1,use strict有什么意义和好处
答:use strict表示严格模式,使调试更加容易,防止意外的全局变量,消除this强制,不允许重复的属性名称或参数值
2,NaN是什么?
答:NaN属性代表一个不是数字的值,它的类型是Number,
3,深拷贝与浅拷贝的区别?
答:假设B复制了A,当修改A时,如果B也跟着变化,说明是浅拷贝,如果B没变,就是深拷贝
4,基本数据类型与引用数据类型
答:基本数据类型:有number,string,boolean,null,undefined,名值存储在栈内存中
引用数据类型:是指Object类,名存在栈内存中,值存在于堆内存中,在栈内存会提供给一个引用的地址
5,js中闭包是什么?
答:闭包是一个可以访问外部封闭函数作用域链中的变量的内部函数,封闭的作用域
6,什么是防抖和节流?有什么区别?如何实现?
答: 通过防抖和节流的方式来减少调用频率
函数防抖:当持续触发事件时,一定时间段内没有再触发时间,事件处理函数才会执行一次,
如果设定时间到来之前,有触发了事件,就重新开始延时
函数节流:当持续触发事件时,保证一定时间段内只调用一次事件处理函数。
7,介绍下 Set、Map、WeakSet 和 WeakMap 的区别?
Set(集合):ES6新增的一种新的数据结构,类似数组,但成员是唯一且无序的
WeekSet 对象允许你将弱引用对象存储在一个集合中,只能存储对象引用,不能存放值,
对象中的存储值都是被弱引用的,可能存在对象中值被垃圾回收掉的情况
Map(字典):以键值对的形式存储不重复的值
WeakMap:对象是一组键值对的集合,其中键是弱引用对象,而值可以是任意
8,介绍下深度优先遍历和广度优先遍历,如何实现
答: 深度优先不需要记住所有的节点,所以占用空间小,而广度优先需要先记录所有的节点占用空间
深度优先有回溯操作所以相对而言事件会长一点
总结:深度优先采用的是堆栈的形式,即先进后出
广度优先则采用的是队列的形式,即先进先出
9,ES5/ES6 的继承的区别?
答: ES5中通过构造函数继承,继承属性,再通过原型链继承,继承方法;
ES6中通过extends关键字进行继承
区别:
ES5中先创建子类的实例this,再通过父类构造函数或原型向其上添加属性或方法。
ES6中是先通过super创建父类实例this,再向其中添加属性或方法,ES6中有两条原型链
10,setTimeout、Promise、Async/Await 的区别?
答:setTImeout 定时任务
Promise 同步的立即执行函数,在executor中执行resovle/reject时,会先执行then/catch,
当主栈完成后,才会调用resolve/reject中存放的方法执行
async/await async函数返回一个Promise对象,当函数执行的时候,一旦遇到await就会先返回,等到触发的异步操作完成
再执行函数体后面的语句
11,JS 异步解决方案的发展历程以及优缺点
答:未完
- 上一篇: 深入JavaScript教你内存泄漏如何防范
- 下一篇: 你可能不知道的JS开发技巧
猜你喜欢
- 2024-11-18 浏览器垃圾回收
- 2024-11-18 JavaScript中各种源码实现(前端面试笔试必备)
- 2024-11-18 2021年要了解的34种JavaScript优化技术
- 2024-11-18 你可能不知道的JS开发技巧
- 2024-11-18 深入JavaScript教你内存泄漏如何防范
- 2024-11-18 关于前端174道 JavaScript知识点汇总(一)
- 2024-11-18 前端面试计划(二)ES6
- 2024-11-18 2022前端大厂VUE 面试题
- 2024-11-18 javascript中的内置对象和数据结构
- 2024-11-18 经常被面试官考的 JavaScript 数据类型知识你真的懂吗?
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-