1 以下代码运行结果为
var setPerson=function(person){
person.name="kevin";
person={name:"nick"};
};
var person={name:"alan"};
setPerson(person);
alert(person.name);
答案:Kevin
首先,调用全局函数setPerson,传入person,此时person是 var person={name:"alan"};传入以后,person.name="kevin";覆盖的person的name 属性。所以最终答案为Kevin
2 以下代码输出的结果是
var array1=Array(3);
array1[0]=2;
var result=array1.map(element => "1");
console.log(result);
答案:[ "1", null, null ]
map()方法返回一个新数组,数组中的元素为原始元素经过函数处理后输出的元素。不会改变原始数组
map()按照原数组顺序一次处理数组元素
3 以下代码输出结果为
var a= 2018<0 || typeof(2018+"");
console.log(a);
答案:string
考察||,第一项为true,则返回第一项的结果,如果第一项是false,则不论第二项是什么,都返回。本题第二项为string
4 下列关于line-height,说法正确的是
A line-height设置150%或1.5都是一样的效果
B 在Inline元素设置line-height不会生效
C 设定line-height的值少于font-size 的值,元素高度为fontsize的值
D line-height属性会被继承
答案:A C D
<style>
.ce1{
line-height:150%;
}
.ce2{
line-height:1.5;
}
.ce{
font-size:28px;
line-height:10px;
}
.line{
line-height:50px;
background:#ccc;
}
</style>
</head>
<body>
<div class="ce1">我的lineheight为150%</div>
<div class="ce2">我的lineheight为1.5</div>
<div class="ce">我是28px的文字,我的行高为10px</div>
<span class="line">我是inline</span>
</body>
运行结果为
ACD 正确,对inline元素设置line-height属性也会生效。
5 以下代码的运行结果为
for(var i={j:0};i.j <5;i.j++){
(function(i){
setTimeout(function(){console.log(i.j)},0);
})(JSON.parse(JSON.stringify(i)));
}
答案:0,1,2,3,4,5
6 以下代码的运行结果为
for(var i=0;i<5;i.j++){
(function(i){
setTimeout(function(){console.log(i.j)},0);
})(i);
}
答案:4,4,4,4,4
7 以下代码运行结果为
var elements = ['Fire','wind','Rain'];
console.log(elements.join(','));
答案:Fire,wind,Rain
8 以下代码运行结果为
var execFunc = function(){
console.log("executed");
};
setTimeout(execFunc,0);
console.log("changed");
execFunc = function(){
console.log("another executed");
}
答案:changed executed
9 能阻止事件冒泡的方法
A e.preventDefault()
B event.cancelBubble = true
C event.returnValue = false
D e.stopPragation()
答案: B D
分析:DOM中的事件对象 event.stopPropagation()可以阻止事件的传播.,取消进一步的事件冒泡或者捕获
IE中的事件对象 cancelBubble属性值为true,可以取消事件冒泡。
preventDefault() 阻止事件的默认行为,只有cancelabel属性的值设为true时,才可以使用preventDefalut. |
10 下面选项中给submitan按钮绑定click事件,正确的是
A btn.addEventListener("click",fun,false);
B btn.dispatchEvent("click",fun,true);
C btn.attachEvent("onclick",fun);
D btn.detachEvent("onclick",fun);
答案:ABC
分析: DOM2级事件绑定: addEventListener有三个参数:第一个参数表示事件名称(不含 on,如 “click”);第二个参数表示要接收事件处理的函数;第三个参数为 useCapture。
IE用了attachEvent(),和detachEvent(),接收两个参数,事件名称和事件处理程序函数。由于IE8及以前只支持事件冒泡;通过attachEvent()添加的事件处理程序都会被添加到冒泡阶段。
attachEvent(event, function):event 必须。字符串,指定事件名。注意: 使用 “on” 前缀。 例如,使用 “onclick” ,而不是使用 “click”
btn.detachEvent("onclick",handler); /*IE下移除侦听器*/
事件触发器也是分为高级浏览器和IE两派,而dispatchEvent正是用于高级浏览器的事件触发。 dispatchEvent是作为高级浏览器(如chrome、Firfox等)的事件触发器来使用的。