您的位置:首页 > Web前端

58同城2017秋招前端工程师笔试卷

2017-08-15 11:09 531 查看
1、var a=[0];

if(a){

    console.log(a==true);

}else{

    console.log("wut");

}

结果输出是什么?

答案:false

解:a==true相当于Number(a)==Number(true),而Number([0])是0,Number(true)是1

2、css 属性能够设置盒模型的内边距为上 10px 、下 20px 、左 30px 、右 40px 的合并写法 ____.

答案:padding:10px 40px 20px 30px;

3、当块级元素设置 box-sizing:border-box 属性时,该块级元素的 width 包含哪几个部分?

答案:border、padding、width

4、列举出 3 个 JS 中的基本数据类型。

答案:Number、Null、Undefined、String、Boolean

5、input 的 type 属性值列举 3 个.

答案:text、button、radio、checkbox、file、email、password、submit

6、移动浏览器中,触摸一下屏幕会依次触发哪些事件.

答案:touchstart、touchmove、touchend、touchcancel

7、‘5’+3 等于 ____ , ’5’-3 等于 ____.

答案:53 2

8、常见的浏览器端的存储技术有哪些?

答案:

cookie

localStorage

sessionStorage

indexDB

userData:IE中

9、非严格模式下写出下面表达式结果

parseInt(“123a”)=____.

答案:123

10、var a=[1,2,3,4,5];

a.splice(1,3,5,2,1);

console.log(a);

a 的输出结果 ____.

答案:[1,5,2,1,5]

11、简述css中position属性为absolute和relative的区别。

答案:

absolute:相对于最近的设置了相对定位的父元素进行定位,脱离了文档流

relative:相对于自身在文档流中的位置进行定位,没有脱离文档流

12、简述domready和onload事件的区别?图片的onload和domready和页面onload的先后顺序,并简述原因。【掌握】

答案:dom文档加载的步骤为: 

1.解析html结构 

2.加载外部脚本和样式表文件 

3.解析并执行脚本代码 

4.dom树构建完成 // DOMContentLoaded 

5.加载图片等外部文件 

6.页面加载完毕 // window.onload 

DOMready是DOM数加载完毕开始执行

onload是所有脚本、图片等各种资源加载完毕才执行

所以:先domready然后img的ready最后页面的onload。

13、描述一个你在实际项目中有用过什么比较好的布局方式(不拘泥于页面整体布局,页面中某一小版块也行),深入讲解下其中的原理?

答案:传统盒模型、flex弹性布局http://blog.csdn.net/liyangbai/article/details/77198767

14、Ajax是什么?Ajax的交互模型?同步和异步的区别?如何解决跨域问题?

答案:

1、AJAX是异步JS和XML

2、主要用来实现客户端与服务器端的异步通信,实现局部刷新

创建请求调用对象XMLHtt
4000
pRequest对象,创建http请求以及对应的请求方法、参数,

通过window.open方法和window.send方法发起请求,设置请求的状态响应函数,绑定xhr,

即xhr.onreadystatechange,监听状态码,成功时操作响应文本即可。

3、同步和异步的区别:

同步:必须等到当前内容完成才能执行以后的内容;

异步:在执行当前内容时,不必等待,直接执行之后的内容。

4、跨域问题:首先明白同源:域名、端口、协议都相同才是,否则就涉及到跨域问题。

解决跨域:

动态创建script标签,利用其src属性获取JS脚本,JS脚本中的内容是函数调用,其参数是服务器返回的数据,在页面上事先定义好回调函数。利用AJAX从服务器获取数据,在回调函数中处理服务器返回的数据,即将其传递给JS脚本的函数调用。

15、简述instanceof和type的区别?简述 []  instanceof Object的值和原因?

答案:

instanceof:检查当前对象是否是某个对象的实例

typeof:检查某个值是哪个基本类型

[] instanceof Object的值:true

原因:数组是Array的实例,而Array是Object的实例

16、编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成。“组合 ”的规则如下:

1). str中的每个字母要么来自于part1,要么来自于part2;

2). part1和part2中字母的顺序与str中字母的顺序相同。

例如:

"codewars"由"cdw"和"oears"组合而成:

s: c o d e w a r s = codewars

part1: c d w = cdw

part2: o e a r s = oears

完成函数:

function isMerge(s, part1, part2) {

//code here

}

答案:
function isMerge(s,part1,part2){
if(part1.length==0||part2.length==0){
return s==(part1||part2)?true:false;
}
var arr1=[],arr2=[];
if(part1&&part2){
arr1=part1.split('');
arr2=part2.split('');
for(var i=0;i<s.length;i++){
if(arr1.length&&arr1[0]==s[i]){
arr1.shift();
}else if(arr2.length&&arr2[0]==s[i]){
arr2.shift();
}else{
return false;
}
}
if (arr1.length||arr2.length) {
return false;
}
return true;
}
}
17、编写请给 Array 本地对象增加一个原型方法,它用于删除数字数组中重复的数字(可能有多个),返回值是一个包含被删除的重复条目的新数组

答案:
Array.prototype.delRep=function(){
if(this.length<=1){
return [];
}
this.sort();//记得一定要排序啊啊啊啊啊····
var arr=[this.shift()];
for(var i=0;i<this.length;i++){
if(this[i]!=arr[arr.length-1]){
arr.push(this.splice(i--,1)[0]);
}
}
return this;
}
18、【编程题】

小 S,小L,小P,小R和小H 五个人排队站在一个出售’克隆可乐’的自动贩卖机前 ; 队伍中除了他们五个没有其他人 。 队形如下 :

小 S,小L,小P,小R,小H

队列的第一个人 (小S)买了一听可乐,喝下去后变成了两个小S!然后两个小S心满意足的站到了队伍的最后。此时队形变成了这样:

小 L,小P,小R,小H,小S,小S

然后队列中下一个人 (小L)也买了听可乐,喝下去后变成两个人,站到了队伍最后。以此类推。例如小P第三个喝了克隆可乐,之后队伍变成这个样子:

小 R,小H,小S,小S,小L,小L,小P,小P

请问第 n个喝这个饮料的人是谁?

答案:
function getNth(arr,n){
if (n<=arr.length) {
return arr[n-1];
}
var temp='';
while (n>0) {
temp=arr.shift();
arr.push(temp);
arr.push(temp);
n--;
}
return temp;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: