四时宝库

程序员的知识宝库

2019年前端面试题总结:某公司中级面试题

一、选择题

1.要动态改变层中的内容可以使用的方法有?

  • A:innerHTML
  • B:innerText
  • C:通过设置层的隐藏和显示来实现
  • D:通过设置层的样式属性的display属性

// 答案: A,B,注意动态改变,内容

2. 看下面的代码,给出输出的结果?

3. 看下面代码,给出输出结果?

  • A:1
  • B:2
  • C:undefined
  • D:报错

答案是:B,

涉及到的知识点有作用域,变量提升。

因为var是函数级作用域,foo函数中出现var a=2 的存在,

就默认在函数内顶端 声明var a;此时这个a没有被赋值所以是undefined;

然后执行if(!a)等价于!undefined肯定是true。然后给a赋值为2.

所以打印的是2。

二、问答题

1. 请用css实现水平居中,HTML结构如下

答案:

2. 下面这个ul,如何点击每一列的时候alert其index?

  • 这算是一个闭包和作用域的的考点吧,用ES6的声明很简单。直接上答案。
  • ------题外延伸,点击某一列,显示其内容的值?

    • 这是一种事件委托,也叫事件代理,是事件捕获和事件冒泡的一种运用。

    举个例子,比如一个宿舍的同学同时快递到了,一种方法就是他们都傻傻地一个个去领取,还有一种方法就是把这件事情委托给宿舍长,让一个人出去拿好所有快递,然后再根据收件人一一分发给每个宿舍同学;

    在这里,取快递就是一个事件,每个同学指的是需要响应事件的 DOM 元素,而出去统一领取快递的宿舍长就是代理的元素,所以真正绑定事件的是这个元素,按照收件人分发快递的过程就是在事件执行中,需要判断当前响应的事件应该匹配到被代理元素中的哪一个或者哪几个。

    优点:

    • 减少内存消耗。不用给每一个 li 都绑定一个函数。绑定到ul上面,执行事件的时候去匹配判断目标元素。
    • 动态绑定事件。增加或者去除列表项元素,那么在每一次改变的时候都需要重新给新增的元素绑定事件,给即将删去的元素解绑事件;

    3. 说出一下函数的作用是?空白区域应该填写说明?

    • 这个函数的作用就是格式化一段代码,将传入的参数替换掉html里面{}中的内容。类似于vue中{}的实现。

    4. 写一个function,清除字符串前后的空格。(兼容所有浏览器)

    5. 用js实现随机选取10-100之间的10个数字,存入一个数组,并排序。

    6. 使用js编写一个函数,能够对传入的常见对象进行clone(深拷贝)

    7. 某种药方要求非常严格,你每天需要同时服用A.B两种药片各一颗,不能多也不能少。这种药非常贵,你不希望有任何一点浪费。一天,你打开药片A的药瓶,倒出一粒药片放在手心,然后打开另一个药瓶,但是不小心倒出了两粒药片。现在,你手上有一颗药片A,两颗药片B,并且你无法区别哪个是A,哪个是B。你如何才能严格遵循药方服用药片,并且不能有任何的浪费?

  • 把现有的三个药片各切一半,分成两个堆。
  • 再从A药瓶中拿出一粒切半,分别放入两堆。
  • 这样今天先吃第一堆,明天再吃第二堆。
  • 最后

    以上是经过参考很多同行分享与官方文档,汇总的一份总结,如有不对,请指出,最后感谢大家观看,

    如果你觉得本文对有帮助,记得点赞+转发 分享给他人,看完不点赞的都是(流氓 /(ㄒoㄒ)/~~

    更多前端面试经验、题库,如何获取,首先关注我,并且私信我回复“教程”即可免费获取!

    对于本文你有其他的见解或想法欢迎评论区留言,谢谢!

    发表评论:

    控制面板
    您好,欢迎到访网站!
      查看权限
    网站分类
    最新留言
      友情链接