cvte前端笔试题

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都是一样的效果

扫描二维码关注公众号,回复: 2335323 查看本文章

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等)的事件触发器来使用的。

猜你喜欢

转载自blog.csdn.net/runner_123/article/details/81138712