今天上午的面试是我的第二次前端面试,问的全都是技术问题,并且都是我没有准备过的,被狠狠地打击了,特此总结了一下面试题目。
1.解释下工厂模式?
工厂模式是软件工程领域一种广为人知的的设计模式,这种模式抽象了创建具体对象的过程。考虑到在ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节;
function createPerson (name,age,job){
var o = new Object();
o.name=name;
o.age=age;
o.sayName=function(){
alert(this.name);
}
return o;
}
2.解释下对象模式?
找遍了《js高级程序设计》这本书,并没有找到“对象模式”这个词的相关解释,因此我推测为面试官表述的有误,可能想表达的是构造函数模式?
构造函数模式:
与工厂模式的区别:
1. 没有显式的创建对象;
2. 直接将属性和方法赋给了this对象;
3. 没有return语句;
4. 函数名以大写字母开头;(这条是我自己加上的)
3.prototype是什么
我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,那么prototype就是通过调用构造函数而创建的那个对象实例的原型对象。使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。换句话说,不必在构造函数中定义对象实例的信息,而是 可以将这些信息直接添加到原型对象中。
4.轮播图的关键点
大体思路: 先创建一个div,限定其宽度和高度,overflow:hidden,且设置其position为relative。然后创建一个装图片的div,宽度为所有图片的总宽度,且设置其position为absolute,并且使其中的内容浮动,这样所有的图片就处于一行中。然后为了实现无缝滚动,所以需要在首尾分别添加一张过渡图片。 先添加两个按钮, 使其可以手动轮播,然后只需要添加一个定时器使其朝一个方向自动轮播即可,因为用户有时需要查看详情,所以当鼠标进入时就clear定时器,滑出再定时播放。为了更好地用户体验,我们再下面添加了一排小圆点,用户可以清楚地知道现在所处的位置, 最后, 利用闭包使得用户可以直接通过点击小圆点切换图片。
5.XMLHttpRequest是什么?
XMLHttpRequest 对象用于在后台与服务器交换数据。
XMLHttpRequest能够:
1. 在不重新加载页面的情况下更新网页;
2. 页面已加载后从服务器请求数据;
3. 页面已加载后从服务器加载数据;
4. 在后台向服务器发送数据;
6.本地存储(localStorage和sessionStorage)
HTML5 提供了两种在客户端存储数据的新方法:
* localStorage - 没有时间限制的数据存储(存储的数据没有时间限制,浏览器关闭后不会被清除去);
* sessionStorage - 针对一个 session 的数据存储(页面关闭后数据被清除)
实例:
//localStorage:
<script type="text/javascript">
if (localStorage.pagecount)
{
localStorage.pagecount=Number(localStorage.pagecount) +1;
}
else
{
localStorage.pagecount=1;
}
document.write("Visits "+ localStorage.pagecount + " time(s).");
</script>
//sessionStorage
<script type="text/javascript">
if (sessionStorage.pagecount)
{
sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;
}
else
{
sessionStorage.pagecount=1;
}
document.write("Visits "+sessionStorage.pagecount+" time(s) this session.");
</script>
7.cookie:
简单地说,cookie 就是浏览器储存在用户电脑上的一小段文本文件。cookie 是纯文本格式,不包含任何可执行的代码。一个 Web 页面或服务器告知浏览器按照一定规范来储存这些信息,并在随后的请求中将这些信息发送至服务器,Web 服务器就可以使用这些信息来识别不同的用户。
Web 服务器通过发送一个称为 Set-Cookie 的 HTTP 消息头来创建一个 cookie,Set-Cookie消息头是一个字符串,其格式如下(中括号中的部分是可选的):
Set-Cookie: value[; expires=date][; domain=domain][; path=path][; secure]
网友评论