58同城2017秋招前端工程师笔试卷
程序员文章站
2022-03-04 11:58:32
...
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、主要用来实现客户端与服务器端的异步通信,实现局部刷新
创建请求调用对象XMLHttpRequest对象,创建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
}
答案:
答案:
小 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个喝这个饮料的人是谁?
答案:
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、主要用来实现客户端与服务器端的异步通信,实现局部刷新
创建请求调用对象XMLHttpRequest对象,创建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;
}
上一篇: 手指在屏幕上滑动,红色的小球始终跟随手指移动(自定义控件)
下一篇: 美图2018秋招Java笔试题