【前端面试--四月二十家前端面试题分享】1-5套个人解题答案

注意:解法错误颇多,请一定要看评论,评论中指出了很多错误!!!

前端面试题

前端面试--四月二十家前端面试题分享

个人解题答案,错误肯定不少,求review。

第一套:

题目1:CSS实现垂直水平居中,HTMl结构如下:

<div class="box">
    <div class="con"></div>
<div>

解:

.con{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
}

题目2:写出原生js或者JQ循环下面的<li>内容

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

解:

    var li=document.getElementsByTagName('li');
    for (var i = 0; i < li.length; i++) {
        console.log(li[i].innerHTML);
    }
var li=$("li");
    for (var i = 0; i < li.length; i++) {
        console.log(li.eq(i).html());
    }

题目3:ajax请求的时候get和post方式的区别,用jQ写出ajax请求。

解:

get-请求服务器资源,不会在http上显示
post-向指定的资源提交要处理的数据,在http上面进行字符串拼接

$.ajax({
    url:url,
    data:data,
    success:success,
    dataType:dataType
});

POST:

$.ajax({
    type:'POST',
    url:url,
    data:data,
    success:success,
    dataType:dataType
});

Get:

$.ajax({
    url:url,
    data:data,
    success:success,
    dataType:dataType
});

题目4:js中函数split(),join()区别

解:

split()把一个字符串分割成数组
join()把数组中的元素放入一个字符串
两者可以理解为相反的过程

题目5:熟悉微信小程序吗?什么是微信小程序?

不熟悉....
微信小程序是微信推出的新能够,不需要按照,扫描二维码即可使用。

大题:

如图所示有一个对象为树形结构,每个节点结构为:

node:{id='xxx',name='xxx',children:[node,node,node,...]},每个id唯一,当没有子节点时,children为false

WX20170414-122826.png

现有一需求,给出id输出node信息,请完成方法getNodeById。

var data={id='xxx',name='xxx',children:[node,node,node,...]};
var id='aaa';
var node=getNodeById(data,id);
console.log(node);

答题要求,先写出解题思路,在进行编码。

解:

第二套:

1.HTTP状态码及其含义

2Xx:请求成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误

2.设置元素浮动后,该元素的display值是多少?

display:blcok

3.请描述cookies、sessionStorage和localStorage的区别

特性 Cookie sessionStorage localStorage
数据的生命周期 一般由服务器生成,可以设置失效时间,如果在浏览器端生成Cookie,默认关闭浏览器后失效 仅在当前会话下有效,关闭页面或浏览器后被清除 除非被清除,否则永久保存
存放数据大小 4k左右 一般为5m 一般为5m
与服务器端通信 每次都会携带在HTTP头中,如果保存过多数据,会带来性能问题 仅在客户端(即浏览器)中保存,不参与和服务器的通信 仅在客户端(即浏览器)中保存,不参与和服务器的通信
易用性 需要程序员自己封装,源生的Cookie接口不友好 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

4.请解释你对盒模型的理解,以及如何在css中告诉浏览器使用不同的盒模型。

标准盒子模型:
总宽度 = width + border(左右) + padding(左右) + border(左右)

14921478211030.jpg

怪异盒子模型:
总宽度 = width + margin(左右)

14921478076474.jpg
box-sizing:border-box;
box-sizing:content-box;

5.下面语句返回值是什么?

var a=6;
setTimeout(function(){
    
    console.log(a);
    a=666;

},1000)
a=66;

解:

66
理解:setTimeout()在xx毫秒之后调用一次,setInterval()在xx毫秒之后调用多次

var a = 6;
function b() {

    console.log(a);
    a = 666;
}
b();
var a = 66;
//结果:6
var a = 6;

function b() {
    a = 666;
    console.log(a);
    
}
b();
var a = 66;
//结果:666

这题考察的是函数作用域的问题,原题目执行顺序是:

var a=6;
a=66;
setTimeout(function(){
    
    console.log(a);
    a=666;

},1000)

在变量a在全局作用域中已经变成了66,在函数中,因为a在前面调用,所以就会向全局作用域寻找a,找到66.如果是这样:

var a=6;
a=66;
setTimeout(function(){
    a=666;
    console.log(a);
},1000)

那么打印出来的就是666,因为在函数中已经声明了a=666;

第三套

题目1.css选择符有哪些?按照优先级进行排序。

id>class>tagname

题目2.前端页面有js行为层和另外2个层是什么?作用是什么。

HTML 结构层 前端页面结构
CSS 表现层 前端页面样式

题目3.你做的页面在哪些内核浏览器测试过?

Trident - ie内核
Gecko - firefox内核
Webkit - chrome safari
Presto - opera(前任),现在opera也使用webkit

题目4.在Jquery中被誉为工厂函数的是()

a)ready()
b)function()
c)$()
d)factory()

解:

选择:c

题目5.setTimeout("buy()",2000)表示的是:

解:

间隔2秒后,buy()函数被调用一次,且仅被调用一次

第四套

  1. 要动态改变层中内容可以使用的方法:innerHTML
  2. 当按键盘A时,使用oneKeyDown事件打印event.keyCode的结果是:13(这题好没意思)
  3. 在javascript里,不属于数组方法的是:length()
    注:数组length是属性,调用方式arr.length,没有括号
  4. 检索被选定的选项的索引号:selectedIndex
  5. 希望图片具有“提交”按钮同样的功能,如何编写表单提交:在图片的onSubmit事件中手动提交(不确定)
  6. ping基于什么协议:ICMP
    注:ping在主机和服务器之间传递控制消息,属于ICMP协议,但是ICMP协议是TCP/IP的子协议。。。
  7. C
var emp = newArray(3);
for(var i in emp)

==
for(var i=0;i<emp.length;i++)

  1. 制作级联菜单功能时调用的下拉列表框是什么事件:onChange
  2. 数组声明方式:
var arry=new Array;
var arry=new Array();
  1. 实现层的隐藏:display:none
    太多了...略

第五套

1.写出以下值

alert(1&&2);
alert(1||2);

解:

alert(1&&2);//2
alert(1||2);//1

1、只要“||”前面为false,无论“||”后面是true还是false,结果都返回“||”后面的值。

2、只要“||”前面为true,无论“||”后面是true还是false,结果都返回“||”前面的值。

3、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

4、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

2.验证字符串的组成规则,第一个需为数字,后面可以是字母,数字,下划线,总长度为5-20;

解:

var c=/^[\d]{1}[/w]{4,19}/
c.test(string)

3.以下代码,alert值是多少?

window.val = 1;
var json = {
    val: 10,
    dbl: function() {
        this.val *= 2;
    }
};
json.dbl();
var dbl = json.dbl;
dbl();
json.dbl.call(window);
alert(window.val + json.val);

解:

值为:24

window.val = 1;
var json = {
    val: 10,
    dbl: function() {
        this.val *= 2;
    }
};
json.dbl();//通过json调用dbl方法,把json里面的val改为20
var dbl = json.dbl;//把dbl函数赋值给dbl
dbl();//全局作用域,调用dbl()函数,把window的val改为2
json.dbl.call(window);//同上,window的val改为4
alert(window.val + json.val);//4+20=24

4.以下代码,alert值是多少?

(function() {
    var val = 1;
    var json = {
        val: 10,
        dbl: function() {
            val *= 2;
        }
    };
    json.dbl();
    alert(json.val + val);
}());

解:

12

(function() {
    var val = 1;
    var json = {
        val: 10,
        dbl: function() {
            val *= 2;
        }
    };
    json.dbl();//这里调用的是val=1,如果这里是this.val则指向json内部
    alert(json.val + val);//10+2=12;
}());

6.以下代码,alert值是多少?

var foo = 'Hello';
(function() {
    var bar = 'World';
    alert(foo + bar);
})();
alert(foo + bar);

解:

var foo = 'Hello';
(function() {
    var bar = 'World';
    alert(foo + bar);//HelloWorld
})();
alert(foo + bar);//报错,因为bar未定义

7.foo.x的值是什么?

var foo={n:1};
var bar=foo;
foo.x=foo={n:2};

解:

undefined
解答

8.写出以下代码的输出内容

console.log('one');
setTimeout(function() {
    console.log('two');
}, 0);
console.log('three');

解:

❌:one,two,three
这题考察了setTimeout(Fn,time)的异步机制
参考资料:详解setTimeout(fn,0)

9.你对ES6的了解有哪些?

略...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,560评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • 请参看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon阅读 7,097评论 2 19
  • 我有2个孩子,老大9岁,老二3岁,老大3岁后我开始学习正面管教,老二是在正面管教环境下成长的孩子。 老大热爱运动、...
    美凤的打怪日记阅读 694评论 0 1
  • 清朝康熙年间有个大学士名叫张英。一天张英收到家信,说家人为了争三尺宽的宅基地,与邻居发生纠纷,要他利用职权疏通关系...
    ESTY阅读 192评论 0 0