博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【面试次体验】堆糖前端开发实习生
阅读量:6098 次
发布时间:2019-06-20

本文共 5631 字,大约阅读时间需要 18 分钟。

在上一次失败的经历之后,本菜鸟非常努力的梳理羽毛(整理知识点),在两天后参加了堆糖的视频面试。这次面试经历总体来说比较好,可能是查漏补缺起到了效果,大部分的题目都能大体回答出来,加上面试官很nice~~~

Anyway,还是把面试过程整理出来。


首先还是从CSS开始,有遇到与上次面试类似题目的请参考

CSS题目

1.如何实现一个三栏布局

三栏布局,问到的时候我以为是左右固定,中间自适应,后来发现他就是想考我float。

*{    margin: 0;    padding: 0;}.left,.right,.middle{    float:left;    border: solid 1px #777;    width: 30%;    margin:1.55%;}

然后面试官问我,这三个元素float了之后,对下面的元素有影响要怎么处理。

清除浮动问题我发现是前端面试CSS方面经常问的一个问题,详细可参考文章:。

主要的方法有添加多余标签,然后clear: both一下

然后CSS改一下

.clear{    clear: both;}

第二个方法是在父层容器添加overflow:auto属性

.overflow{    overflow: auto;}

第三个方法是用伪类::after

由于IE6-7不支持:after,使用 zoom:1触发 hasLayout。

.clearfix::after{    display: block;    content: "";    visibility: hidden;    clear: both;}.clearfix{    *zoom:1;}

2.position的几种属性

我发现这个面试官的问题都不算刁钻,position也是在学布局的时候一定要接触到的。常用的position有static、fixed、absolute和relative。

position:static

这个static是默认的,对块级框的块格式化,对行级框的行格式化,元素按照块格式化上下文或行格式化上下文正常排版。

position:relative

相对定位,元素正常排版,并可以用top left right bottom进行位置的偏移,然而后面的元素不会调整位置去适应这个相对定位的元素。

position:absolute

绝对定位,元素脱离正常排版,使用top left right bottom相对于第一个非static的父层定位。

position:fixed

与absolute类似,不过使用top left right bottom定位是在视口的固定位置上。


3.如何实现一个响应式布局

这个是一个经验题。我原以为他要问我对Bootstrap等类库的使用,加之我从没接触过移动端,对于除了使用过Bootstrap和使用百分比宽度没再尝试过别的。

面试官说明是要自己写响应式,然后我就说我就是用百分比设置宽度。然后他问半分比相对于谁?

所以说还是基础硬伤,因为自己做的时候没注意过相对于谁,而且大多是外框,所以就说相对于窗口。面试官一笑,窗口?我说好吧,我再查查。。。顺便查了一下盒模型设置的各个百分比都是相对于谁的。

CSS中:width、margin和padding百分比是相对于包含块的!

一般情况下包含块是父元素,当position: fixed的时候,包含块为视口;当position: absolute的时候,包含块为最近的position不是static的祖先。

除此之外,响应式布局的方法还有:

CSS3 Media Query

通过在<head>里面插入这段内容,使分辨率在小于1024分辨率的情况下和大于1024分辨率的情况下能响应不同的css文件。

设置原始缩放比例和视窗的大小

同样,可以在样式表中镶嵌@media,文章推荐参考


Javascript题目

1.Jquery中$('').click()和$('').on('click')的分别

我为了学基础,学原生的Javascript,已经很久没碰Jquery了。问到这个问题的时候,我只能很诚实的说我没有考虑过这个问题,如果让我说的话,可能是原生的JS中onclick事件与addEventListener("click")的区别。

在面试完之后,我立刻又上网查了这两个的分别,其实在效果上作用不大,就是说下列代码在实现上并没有很大差距。

$("#myDiv").click(function(){    alert("clicked");})
$("#myDiv").on("click",function(){    alert("clicked");})

不同的是,on()方法可以实现动态绑定。可以将所有的点击事件绑在一个父层元素上,也可以用off()方法解绑定。

$("body").on("click","button",function(){    var btnValue = this.val();    alert(btnValue+"clicked");});//为每一个按钮绑定点击事件
$("#myDiv").off("click");//解除点击事件绑定

2.JS实现一个类

我发现,这个问题也是面试常会问到的,而且我觉得这也是我在学习JS的时候遇到的一个难点。

说起类,就要提起原型链的问题,这里直接上例子。对于原型,可以直接参考我大神男友的博文、。

《Javascript高级程序设计》中讲到继承的时候提到了六种方式:原型链、借用构造函数、组合继承、原型式继承、寄生式继承、寄生组合式集成。

原型链方式的具体用法是创建一个构造函数,然后创建继承这个构造函数的引用类型,将这个引用的原型指向构造函数。在原型链的问题是,Student的原型为Person的实例,那么所有Student的实例会共享它引用类型的属性,所以实例在修改这个属性的时候会导致其他实例的实例都被修改。

function Person(name,age){    this.name=name;    this.age=age;    this.sayName=function(){        alert(this.name);    }}function Student(school){    this.school=school;}Student.prototype= new Person();

借用构造函数的用法是在一个引用类型中调用构造函数,使用apply()和call()方法可以在函数内部调用构造函数。问题是,对于Student的实例找不到哪些是Person中定义的。

function Person(name,age){    this.name=name;    this.age=age;}Person.prototype.sayName=function(){    alert(this.name);}function Student(name,age,school){    Person.call(this,name,age);    this.school=school;}

组合方式是综合了原型链与借用构造函数两种方式。

function Person(name,age){    this.name=name;    this.age=age;}Person.prototype.sayName=function(){    alert(this.name);}function Student(name,age,school){    Person.call(this,name,age);    this.school=school;}Student.prototype= new Person();Student.prototype.constructor=Student;Student.prototype.saySchool=function(){    alert(this.school);}var instance1=new Student("Kathy","23","UQ");var instance2=new Student("Visper","24","KMUST");instance1.saySchool();//UQinstance2.sayName();//Visper

原型式继承,方法是通过一个现有的对象创建一个新的对象。

//引自《Javascript高级程序设计》function object(o){    function F(){}    F.prototype = o;    return new F();}var person = {        name: "Kathy",        age: "23"};var anotherPerson = Object.create(person);anotherPerson.name = "Visper";anotherPerson.age = "24";

寄生式继承的方法是将原型式继承封装在一个方法内,然后再用工厂式的创建对象的方法。

//引自《Javascript高级程序设计》function object(o){    function F(){}    F.prototype = o;    return new F();}var person = {    name: "Kathy",    age: "23"};function createPerson(original){    var clone=object(original);     clone.sayName=function(){        alert(this.name);    };    return clone;}var anotherPerson = createAnother(person);anotherPerson.name = "Visper";anotherPerson.age = "24";

2.如何统计一个字符串中哪个字母出现的次数最多

这个问题又是算法题,而算法题是我相当不擅长的。。。不过有上次选取“字符串中第一个只出现一次的字符”的经验,这次也是比较快的想出了一个方法。不过,也还是不知道这个问题的最快解决办法是什么。

思路还是将字符串变成数组,然后再sort()排序,之后为每一组字符计算数字,将目前出现次数最多的字符以及其次数记下来。

function maxCountValue(string){    var letterArray=Array.prototype.slice.apply(string);    var sortArray=letterArray.sort();    var arrayLen=letterArray.length;    var countNow=0,count=0,value=sortArray[0],maxCountValue="";    for(var i=0;i

HTTP题目以及新技术题目

HTTP题目继续问到了AJAX的问题,上一篇面试题中有整理。

面试官紧接着有问到form提交和ajax提交的区别?

Form在提交的时候,会跳转页面或者原页面刷新。而AJAX是异步的,无需页面刷新而只是部分刷新。
Form提交时,JS不是必需的,而且数据按照表单结构提交。AJAX需要JS来实现,而且数据也要用程序处理。


之后面试官问到开发环境问题:

1、目前的开发环境是什么

曾用PC开发,使用EverEdit;这几个月转用Mac,使用HBuilder

2、shell操作 命令行用过什么

简单的前进到文件目录cd
列出当前文件夹内的文件 ls -li
改变所有人权限 chown
该文件读写模式 chmod

3、chrome的调试方法

Elements中查询元素结构、以及元素的样式
Network中查看每个资源的请求反馈时间
Sources中调试程序,在左栏程序文件上打断点,并在右侧输入变量名查看变量值的变化
Resource中查询Session、Cookie、本地存储及缓存的状态
Console中执行函数并查看错误行号或错误代码

4、代码管理工具使用过么?做哪些操作呢?

使用过Git:建立远程仓库,拉取本地仓库,更改之后submit,之后push到远程仓库。曾经Fork过别人的,然后修改过后也是submit再push。
说实话我做的个人项目比较多,对于GitHub的使用仅限于提交推送更新代码。所以也是大概的说了一下我的使用情况。


新技术题目

接触过什么比较前沿的技术?js框架、模块化 、自动化工具、预编译语言?

呃。。呃。。呃。。。

当时我的反应好尴尬,不过也是实话实说我没接触过什么,只不过听说过angular.js、backbone.js之类的。其余的都没太听说过。。。汗

不过我有表示我以后会努力学习,迎头赶上!


最后问道面试官对我的印象:1、经验不足,2、新技术接触的太少。

因为我目前时间有限,只有每天晚上整理面试题,所以这短短的几个题整理了接近一个星期,很多问题也期待大神们的补充。。。目前也算是找到了工作,今后会继续努力,让我的羽翼丰满起来!

转载地址:http://qybza.baihongyu.com/

你可能感兴趣的文章
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
http://www.blogjava.net/pdw2009/archive/2007/10/08/151180.html
查看>>
hadoop(6)---mapred-site.xml 详解以及常用配置。
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
BZOJ 2190[SDOI2008]仪仗队
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>
P127、面试题20:顺时针打印矩阵
查看>>
JS图片跟着鼠标跑效果
查看>>