【面经】2019腾讯前端实习生一面

JS


  1. 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进行解绑

  1. 数组函数是否改变原数组✔️
  2. 用过哪些数组的API✔️
  3. 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对象
  1. 深浅拷贝✔️
  2. 如何判断数据类型?除了使用typeof instanceof之外怎么判断?✔️
function isArray(arr) {return Object.prototype.toString.call(arr) === '[Object Array]'
}
  1. jQuery链式操作是怎么实现的?✔️
return this
  1. new一个对象的过程 ✔️
  2. ES6了解吗? ✔️
  3. 有没有用过组件?完全没用过Vue或React? ✔️❓
  4. 作用域和闭包?ES6有块级作用域! ✔️
  5. 事件冒泡代理

CSS


  1. CSS动画
  2. CSS选择器
  3. 元素如何在页面中上下居中
  4. 知道几种盒模型?怎么计算宽度?

浏览器


  1. 跨域
  2. 存储
  3. DOM增加节点

安全性


  1. 安全性问题

算法


  1. 判断字符串中是否有重复
  2. 计算字符串中重复字符的个数
  3. 如何匹配{[(

项目相关


  1. 如何实现长按批注?
  2. 印象深刻的前端项目?


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部