【面经】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. 印象深刻的前端项目?
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值