1. javascript的typeof返回哪些数据类型?
string,boolean,number,undefined,function,object(简单记忆sbnufo)
2.split() join() 的区别
前者是将字符串切割成数组的形式,后者是将数组转换成字符串(这个用过的都知道)
3.数组方法pop() push() unshift() shift() slice()
push()尾部添加 pop()尾部删除 unshift()头部添加 shift()头部删除 slice(number,index) 删除指定位置的个数
4.call和apply的区别
https://www.jianshu.com/p/bc541afad6ee
5.document load 和document ready的区别
document.onload 是在结构和样式,外部js以及图片加载完才执行js
document.ready是dom树创建完成就执行的方法,原生种没有这个方法,jquery中有 $().ready(function)
6.js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式什么?
alert
confirm
prompt
7.innerHTML和outerHTML的区别
innerHTML(元素内包含的内容)
outerHTML(自己以及元素内的内容)
8.冒泡排序算法
比较俩相邻的数值的大小,如果a<b,那么交换他们的位置
2019-04-08
9.addEventListener的第三个参数
可选。布尔值,指定事件是否在捕获或冒泡阶段执行。
可能值:
true - 事件句柄在捕获阶段执行
false- false- 默认。事件句柄在冒泡阶段执行
参考:
http://www.runoob.com/try/try.php?filename=tryjsref_element_addeventlistener_capture
https://baijiahao.baidu.com/s?id=1609309080657127636&wfr=spider&for=pc
2019-04-10
10.什么是闭包?
闭包就是能够读取其他函数内部变量的函数。
由于在javascript中,只有函数内部的子函数才能读取局部变量,所以说,闭包可以简单理解成“定义在一个函数内部的函数“。
本质上,闭包是将函数内部和函数外部连接起来的桥梁。
闭包是不是相当(近似)于一个只有一个方法的对象,只有一个公开方法,而且成员数据几乎全私有(闭包)的对象,自然是一个紧凑版的对象了。
(1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
参考:
https://blog.csdn.net/wy_blog/article/details/57130702
https://www.cnblogs.com/lqzweb/p/6215736.html
https://www.cnblogs.com/cxying93/p/6103375.html
2019-04-11
11.js number的范围
-253 ~ +253
12. 防抖和节流
// 非立即执行版 计时器存在就清楚计时器新起一个计时器去执行,一直等到不清除的计时器去执行,这个一直在一秒内只会执行一次
function debounce(func, wait) {
let timeout; // 这是个闭包
return function () {
let context = this;
let args = arguments;
if(timeout) clearTimeout(timeout); //这句话是防抖的关键
timeout = setTimeout(() => {
func.apply(context, args)
},wait)
}
}
// 立即执行版 计时器存在就不执行,一开始就执行,但下次一直到计时器失效就执行,这个会执行俩次
function debounce(func, wait) {
let timeout;
return function () {
let context = this;
let args = arguments;
if (timeout) clearTimeout(timeout); //这句话是防抖的关键
let callNow;
if(!timeout) callNow = true;
timeout = setTimeout(() => {
timeout = null;
},wait)
if (callNow) func.apply(context, args);
}
}
// 节流,就是指连续触发事件但是在 n 秒中只执行一次函数
function throttle(func, wait) {
let previous = 0;
return function() {
let now = Date.now();
let context = this;
let args = arguments;
if (now - previous > wait) { // 因为闭包 previous = now;
func.apply(context, args);
previous = now;
}
}
}
// 定时器版本
function throttle(func, wait) {
let timeout;
return function() {
let context = this;
let args = arguments;
if (!timeout) {
timeout = setTimeout(() => {
timeout = null;
func.apply(context, args)
}, wait)
}
}
}
2019-04-15
13. requestAnimationFrame
requestAnimationFrame采用系统时间间隔,保持最佳绘制效率,不会因为间隔时间过短,造成过度绘制,增加开销;也不会因为间隔时间太长,使用动画卡顿不流畅,让各种网页动画效果能够有一个统一的刷新机制,从而节省系统资源,提高系统性能,改善视觉效果
参考 :
https://www.cnblogs.com/xiaohuochai/p/5777186.html
2019-04-18
14. 手写promise
参考:
https://www.jianshu.com/p/c633a22f9e8c
https://yq.aliyun.com/articles/613412
https://promisesaplus.com/
2019-04-28
15. html5新增了那些内容?
16. CSS3那些内容比较熟悉?
17. ES6的proxy?
18. vue封装组件?
19. vuex是干嘛用的?
2019-10-31