畅捷通前端面试题

一、请写出一下每行代码的输出结果(6分)

!!(0 == false)
!!(0 == undefined)
undefined == null
isNaN(1312") == NaN
typeof 1 == true ? 1: 0
typeof [] == "array"
[] instanceof Array

二、请正确的写出下面代码在现代浏览器控制台中输出的结果(5分)

 for(var i = 0; i < 3; i++){
    setTimeout(function(){
      console.log(i);
    },(function(){
      var b = i * 1000;
      console.log(b);
      return b;
    })());
  }

三、请实现一个bind方法来传递this作用域和参数(10分)

 //函数,bind(上下文参数,普通参数1,普通参数2...);
  var dom = document.getElementById("ab");
  dom.onclick = (function(){
    console.log(this);
  }).bind(this);

四、类和继承(10分)

场景:
1.有一个鸭子类Duck,有颜色属性color,还有会叫的方法quack();
2.有一个玩具鸭子继承自Duck,玩具鸭子有一个方法play()。请用混合继承(构造方法和原型链)的方式写出一个Duck和子类DuckToy的实现;

五、DOM事件(10分)

有如下列表的DOM结构,请写出监听li元素上的click事件,并且获得li的内容。
要求:
1.不能修改DOM
2.使用原生javascript实现。不能借用其他框架,类库
3.需要兼容IE8+,Chrome,Firefox等浏览器

<div>
  <li>li>
  <li>li>
  ...
  <li>li>
  <li>li>
div>

六、阅读下面的代码片段,请问最后id=”node”的div背景颜色是什么?(3分)

#node{
background:orange;
}
.list .classB{
    background-color:yellow;
}
.classA{
    width:100px;
    height:100px;
    color:red !important;
}
<div class="list">
    <div id="node" class="classB classA" style="color:blue;">div>
div>

七、为了让下面大面片段中的div在浏览器中呈现的宽度是100px,请问box-sizing的值是多少?(4分)

.box{
    box-sizing:______;
    margin:10px;
    padding:10px;
    width:100px;
    height:50px;
    border:2px solid red;
}
<div class="box">div>

八、使用javascript实现一个检测字符串是否符合回文规则的函数(10分)

回文:(指顺读和倒读都一样的词语。),就像“上海自来水来自海上”就是一个回文句。
要求:
1.不使用类似reverse()之类的函数
2.注意性能

你可能感兴趣的:(web前端)