Skip to content

什么是原型链

什么是闭包,手写闭包函数,闭包优缺点,闭包的应用场景

常见的继承

ES6新特性有哪些

async、await是什么、作用

常用字符串方法

组件中的data为什么要定义成一个函数而不是一个对象?

每个组件都是 Vue 的实例。组件共享 data 属性,当 data 的值是同一个引用类型的值时,改变其中一 个会影响其他

this的指向有哪些

什么是递归及其优缺点

深拷贝、浅拷贝

JS执行机制是怎样的

知道lodash吗?它有哪些常见的API ?

Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库。 _.cloneDeep 深度拷贝 _.reject 根据条件去除某个元素。 _.drop(array, [n=1] ) 作用:将 array 中的前 n 个元素去掉,然后返回剩余的部分

谈谈set 、 map 是什么?

set 是es6 提供的一种新的数据结构,它类似于数组,但是成员的值都是唯一的。 map 是es6 提供的一种新的数据结构,它类似于对象,也是键值对的集合,但是键的范围不仅限于字符 串,各种类型的值都可以当做键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供 了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适

symbol

ES6 引入新的原始数据类型Symbol,表示独一无二的值

描述一下ES6中的class类

promise是什么及其作用

箭头函数的特征

JS的数据类型有哪些?存储上的差别?

数据类型的判断有哪些方法及其优缺点

引用类型有哪些?

null和undefined的区别

call、apply、bind三者的异同

共同点 : 都可以改变this指向; 不同点: call 和 apply 会调用函数, 并且改变函数内部this指向. call 和 apply传递的参数不一样,call传递参数使用逗号隔开,apply使用数组传递 bind 不会调用函数, 可以改变函 数内部this指向. 应用场景

  1. call 经常做继承.
  2. apply经常跟数组有关系. 比如借助于数学对象实现数组最大值最小值
  3. bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向

如何实现一个bind?

AJAX原理是什么?如何实现?

什么是防抖节流?区别?如何实现?

什么是事件代理?应用场景

对事件循环的理解

JS内存泄露的几种情况

new操作符具体干了什么

如何实现上拉加载,下拉刷新?

对作用域链的理解

var、let、const之间的区别

JS原生绑定事件的方式,如何实现?

创建对象的几种方法

创建函数的几种方式

指出JS宿主对象和原生对象的区别

JS内置常用对象有哪些,常用对象的方法

==和===的区别

JS中什么情况下会返回undefined值?

如何区分数组和对象?

怎么判断两个对象相等?

列举三种强制类型转换和隐式类型转换

获取当前日期的月份

如何遍历对象的属性

src和href的区别

如何使用原生JS给一个按钮绑定两个onclick事件?

JS中的作用域、域解析、变量提升

变量提升与函数提升的区别

什么是作用域链

如何延长作用域链

判断一个值是什么类型有哪些方法

JS变量按照存储方式区分为哪些类型,并描述其特点

Fuction foo()和var foo = function()之间foo用法上的区别?

索引有哪几种类型,有什么区别? 了解

简述JS脚本的执行原理