【面经】2019腾讯前端实习生一面
JS
- jQuery事件绑定的原理✔️
调用on函数的时候,将生成一份事件数据,并将该数据加入到元素的缓存中
{type: type,origType: origType,data: data,handler: handler,guid: guid,selector: selector,needsContext: needsContext,namespace: namespace
}
- jquery中每个元素都可以有一个缓存(只有有需要的时候才生成)
- 缓存就是该元素的一个属性
- jquery为每个元素的每种事件都建立一个队列,用来保存事件处理函数,所以可以对一个元素添加多个事件处理函数
"div#box": { //元素"Jquery623873": { //元素的缓存"events": {"click": [{ //元素click事件的事件数据type: type,origType: origType,data: data,handler: handler,guid: guid,selector: selector,needsContext: needsContext,namespace: namespace}],"mousemove": [{type: type,origType: origType,data: data,handler: handler,guid: guid,selector: selector,needsContext: needsContext,namespace: namespace}]}}
}
当要解绑事件的时候,如果没指定fn参数,jquery就会从该元素的缓存里拿到要解绑的事件的处理函数队列,从里面拿出fn参数,然后调用removeEventListener进行解绑
- 数组函数是否改变原数组✔️
- 用过哪些数组的API✔️
- jQuery怎么获取DOM元素,DOM怎么获取jQuery元素✔️
jQuery -> DOM
- 使用数组索引方式访问
var dom = $(dom)[0];
- 使用函数
get()访问,get()函数中的参数为索引号
var dom = $(dom).get(0);
DOM -> jQuery
对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了
var v=document.getElementById("v"); //DOM对象
var $v=$(v); //jQuery对象
- 深浅拷贝✔️
- 如何判断数据类型?除了使用typeof instanceof之外怎么判断?✔️
function isArray(arr) {return Object.prototype.toString.call(arr) === '[Object Array]'
}
- jQuery链式操作是怎么实现的?✔️
return this
- new一个对象的过程 ✔️
- ES6了解吗? ✔️
- 有没有用过组件?完全没用过Vue或React? ✔️❓
- 作用域和闭包?ES6有块级作用域! ✔️
- 事件冒泡代理
CSS
- CSS动画
- CSS选择器
- 元素如何在页面中上下居中
- 知道几种盒模型?怎么计算宽度?
浏览器
- 跨域
- 存储
- DOM增加节点
安全性
- 安全性问题
算法
- 判断字符串中是否有重复
- 计算字符串中重复字符的个数
- 如何匹配
{[(
项目相关
- 如何实现长按批注?
- 印象深刻的前端项目?
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
