题目一
<script type="text/javascript" charset="utf-8">
function fun(n,o){
console.log(o)
return{
fun:function(m){
return fun(m,n);
}
};
}
var a = fun(0); a.fun(1); a.fun(2); a.fun(3);
var b = fun(0).fun(1).fun(2).fun(3);
var c = fun(0).fun(1); c.fun(2); c.fun(3);
</script>
答案
undefined 0 0 0
undefined 0 1 2
undefined 0 1 1
解析
这道题目比较简单,大概意思就是函数定义有两个参数,并返回一个对象,这个对象有个fun方法,方法是调用fun函数。
这里var a = fun(0);
由于只有一个参数,所以第二个参数应该是undefined。此时a应该就是一个对象。
a这个对象里面引用了n,n的值应该是0,接下来只是不断调用a对象的方法,所以只改变了m但没有改变n。
b在这里也是一个对象,但是其m和n是改变的。fun(0)时(n=0,o=undefined)fun(0).fun(1)(n=1, o = 0)…
题目二
<script type="text/javascript" charset="utf-8">
var a = 100;
function testResult(){
var b = 2 * a;
var a = 200;
var c = a / 2;
alert(b);
alert(c);
}
testResult();
</script>
答案
NaN 100
解析
变量声明提升!上面代码等同于
var a,b,c;
b = a*2;
a = 200;
c = a / 2;
题目三
<script type="text/javascript" charset="utf-8">
var tt = "MR_LP --> QQ :3206064928";
function test(){
alert(tt);
var tt = "李鹏";
alert(tt);
}
test();
</script>
答案
undefined 李鹏
题目四
列出 display 的值,并说明他们的作用
display:block; // 将元素以块元素的方式显示,块元素的特点就是独占一行并且可以设置宽高
display:inline; // 将元素以行内元素的方式显示,行内元素的特点就是可在一行中排放多个但不可以设置宽高
display:inline-block; // 设置该方式的元素即可以设置宽高又可以在一行中排放多个
题目五
position 中,relative 和 absolute 的区别,包括使用时的注意事项和定位原点。
设置为relative定位的,会相对距离其最近的父元素的位置进行定位,并且未设置left/top时位置将位于其原本应该在的位置上。relative是不会脱离文档流的,它依旧占据着它原本的位置。
设置为absolute定位的,则会相对于其最近的非static定位的父元素进行定位,并且未设置left/top时位置将位于其原本应该在的位置上。absolute会脱离文档流,因此其后面的元素将会视其为不存在。
题目六
CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算?CSS 3 新增的伪类有哪些?
http://www.w3school.com.cn/cssref/css_selectors.asp CSS3选择符
CSS可以继承的属性有text-indent, text-align, color, font-*, list-style, visibility…
注意
1. background-color是不能被继承的,元素默认的background-color值为透明。
2. 选择器:link, :visited, :hover, :active, 必须按照这个顺序为a标签设置CSS样式。
3. ele:nth-child(n) : ele的父元素下的第n个子元素,并且一定是ele类型
ele:nth-of-type(n): ele的父元素下的第n个ele子元素。
4. div p: div下的所有p元素
div > p: div下的子元素p
div + p:与div为同级元素的p
题目七
CSS 3 有哪些新特性?
https://www.ibm.com/developerworks/cn/web/1202_zhouxiang_css3/
题目八
new 操作符具体做了什么?
var amy = new Person("amy");
// 创建一个新对象
// 新对象的this指向amy
// 调用构造函数,并执行构造函数的语句为amy附上属性值
// 返回这个新对象