JavaScript
-
js的基本类型有哪些?引用类型有哪些?null和undefined的区别。
-
如何判断一个变量是Array类型?如何判断一个变量是Number类型?(都不止一种)
-
Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?
-
JS常见的dom操作api
-
解释一下事件冒泡和事件捕获
-
事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何组织默认事件?
-
对闭包的理解?什么时候构成闭包?闭包的实现方法?闭包的优缺点?
-
this有哪些使用场景?跟C,Java中的this有什么区别?如何改变this的值?
-
call,apply,bind
-
显示原型和隐式原型,手绘原型链,原型链是什么?为什么要有原型链
-
创建对象的多种方式
-
实现继承的多种方式和优缺点
-
new 一个对象具体做了什么
-
手写Ajax,XMLHttpRequest
-
变量提升
-
举例说明一个匿名函数的典型用例
-
指出JS的宿主对象和原生对象的区别,为什么扩展JS内置对象不是好的做法?有哪些内置对象和内置函数?
-
attribute和property的区别
-
document load和document DOMContentLoaded两个事件的区别
-
JS代码调试
/**
* 下载批量文件的压缩包
* @param urlList 组成dome [{url:‘文件路径’, name: ‘文件名称’}]
* @param zipName 压缩文件名称
* @param suffix 压缩的每个文件的扩展名 例如:docx
*/
export function downFileZip(urlList, zipName, suffix) {
if (!urlList || urlList.length < 1) {
ElementUI.Message({
message: ‘请选择需要下载的数据!’,
type: ‘error’
})
return
}
zipName = zipName || ‘下载文件压缩包’
const zip = new JSZip()
// cache只是用于检查数据的 并没有任何实际意义
const cache = {}
const promises = []
// urlList附件url地址数组
urlList.forEach(item => {
// 下载文件
const promise = getFile(item.url).then(data => {
// 逐个添加文件 追加文件后缀
zip.file(${item.name}.${suffix}
, data, { binary: true })
cache[item.name] = data
})
promises.push(promise)
})
// 异步队列全部完成时 执行下面代码
Promise.all(promises).then(() => {
// 生成二进制流
zip.generateAsync({ type: ‘blob’ }).then(content => {
// 利用file-saver保存文件
saveAs(content, ${zipName}.zip
)
})
})
}
/**
* 批量下载文件
* @param urlList 组成dome [‘路径’]
*/
export function downBatchFile(urlList) {
if (!urlList || urlList.length < 1) {
ElementUI.Message({
message: ‘请选择需要下载的数据!’,
type: ‘error’
})
return
}
for (let i = 0; i < urlList.length; i++) {
const hiddenIFrameID = ‘hiddenDownloader’ + i
const iframe = document.createElement(‘iframe’)
iframe.id = hiddenIFrameID
iframe.style.display = ‘none’
document.body.appendChild(iframe)
// 直接下载,不会弹出新的页面
iframe.src = urlList[i]
// 销毁iframe
setTimeout(function() {
iframe.remove()
}, 60 * 1000)
}
}
刷面试题
刷题的重要性,不用多说。对于应届生或工作年限不长的人来说,刷面试题一方面能够尽可能地快速自己对某个技术点的理解,另一方面在面试时,有一定几率被问到相同或相似题,另外或多或少也能够为自己面试增加一些自信心,可见适当的刷题是很有必要的。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
-
前端字节跳动真题解析
-
【269页】前端大厂面试题宝典
最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。