一、请写出一下每行代码的输出结果(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.注意性能