1.介绍js的基本数据类型?
Undefined,Null,Boolean,Number,String
2.介绍js有哪些内置对象?
Object是JavaScript中所有对象的父对象
数据封装类对象:Object,Array,Boolean,Number和String
其他对象:Function,Arguments,Math,Date,RegExp,Error
3.ES5和ES6分别几种方式声明变量
ES5两种:var和function
ES6有六种:增加4种:let,const,class,import
注意:let,const,class声明的全局变量再也不会和全局对象的属性挂钩
4.闭包的概念?优缺点?
优点:
1.避免全局变量的污染
2.希望一个变量长期存储再内存中(缓存变量)
缺点:
1.内存泄漏(消耗)
2.常驻内存,增加内存使用量
5.数组去重的方法
1.ES6的Set
let arr = [1,1,2,3,4,5,6,7];
let arr2 = [...new Set(arr)];
2.reduce()
let arr = [1,1,2,3,4,5,6,7];
let arr2 = arr.reduce(function(ar,cur){
if(!ar.includes(cur)){
ar.push(cur);
}
return ar;
},[])
3.filter()
let arr = [1,1,2,3,4,5,6,7];
let arr2 = arr.filter(function(item,index){
return arr.indexOf(item) === index
})
6.DOM事件有哪些阶段?谈谈对事件代理的理解
分为三大阶段:捕获阶段--->目标阶段--->冒泡阶段
事件代理简单说就是:事件不直接绑定到元素上,而是绑定到该元素的父元素上,进行触发事件操作时(例如‘click’),再通过条件判断,执行事件触发后的语句(alert(e.target.innerHTML))
好处:
1.使代码更简洁
2.节省内存开销
7.async和await
主要考察宏任务和微任务,搭配promise,询问一些输出的顺序
原理:async和await用了同步的方式去做异步,async定义的函数的返回值是promise,await后面的函数会先执行一遍,然后就会跳出整个async函数来执行js栈的代码
网友评论