2020js常见面试题整理

1、es6新增基本数据类型 symbol 特点就是唯一性,

没有特别大的意义可以避免属性名的冲突。

let firstSymbol = Symbol(‘firstSymbol’);
let secondSymbol = Symbol(‘firstSymbol’);
console.log(firstSymbol == secondSymbol) // false

2、typeof 是优先级很高的一元运算符 。

3、判断对象数据类型 区分数组和对象

1)通过constructor 对象访问它的构造函数 判断是 Array() 还是 Object()
2)通过 instanceof 根据返回的布尔值判断 数组A instanceof Object ;
3)通过 isArray 判断是否是数组;
4)通过 Object.prototype.toString.call(参数);

4、数组的常用方法

	pop() push() shift() 
	unShift() join() reverse() 
	sort() splice() forEach() 
	indexOf() lastIndexOf() slice() 
	filter() map() 
4.1、数组方法对原数组本身有影响 
	push() pop() shift() 
	unShift() reverse() sort() 
	splice()

5、数组实现去重;分为四大类:

1)	创建空数组 循环通过indexOf 判断;
2)	在原数组进行对比 冒泡 splice() ;
3)  通过对象key 唯一的特性进行去重;
4)	[... new set(array];通过 set 进行去重;

6、伪数组 arguments 对象 ,dom多元素选择器选择出来的值;

7、伪数组转换正常数组 Array.prototype.slice.call(); || [].slice.call();

8、常见的string 的常见方法:

charAt() indexOf() substring(start, end) 
substr(start, length) split() 
replace()
8.1、 JS字符串截取函数slice(),substring(),substr()的区别

❄9、js 继承 ❄

继承是一个什么东西 两个不同的类有相同的方法 和不同的方法属性  子级可以直接继承父级的所有方法并且可以衍生自身的方法和属性。


原型链继承、构造函数继承、组合继承、原型式继承

//首先定义一个父类
function Animal (name) {
	// 属性
	this.name = name || 'Animal';
	// 实例方法
	this.sleep = function(){
		console.log(this.name + '正在睡觉!');
	}
}
//父类的原型方法
Animal.prototype.eat = function (food) {
	console.log(this.name + '正在吃' + food);
}

1)、原型链继承方式:
核心:将父类的实例当做子类的原型
function Cat (){}
//子级的原型指针指向父级
Cat.prototype = new Animal();
Cat.prototype.name = 'cat';
// Test Code
var cat = new Cat();
console.log(cat.name);// cat
console.log(cat.eat('fish')); //cat正在吃fish
console.log(cat.sleep());//cat正在睡觉
console.log(cat instanceof Animal); //true 
console.log(cat instanceof Cat); //true

2)、构造函数继承
核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用到原型)
function Cat (name) {
	Animal.call(this,name);
	this.name = name || 'Tom'
}
let cat = new Cat();
console.log(cat.name)//Tom
cat.sleep();//Tom正在睡觉
cat.eat();//构造函数继承方式并不能继承父类的原型对象

3)、

10、script 标签上的属性

defer属性 :延迟执行
async属性:异步执行

11、promise 对象

new Promise((resove,rejeact) => {
	
})

1)多个promise 如何等待   通过all
2)promise then  catch  
3)

12、es6新增常用的东西

1)import export
2)解构赋值
3)let const
4)class
5)箭头函数  传参可以设置默认值 双冒号使用
6)字符串方法 字符串模板`` ${}
7)数组拓展:[...] 拓展运算符 
8)对象拓展:属性表达式
babel 如何转换的

13、css 进行数据统计 img 跨域 背景图进行display 改变\

14、promise async/await原理手写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值