张蕾的技术博客Web前端之路让前端飞

前端面试真题解读2

2017-06-20  本文已影响285人  cd72c1240b33

this代表谁的问题 call apply bind 区别

用过jquery的proxy么?

//$.proxy类似于我们之前封装的processThis,都是用来保证正确的this指向;
$('#myElement').click(function() {

    setTimeout($.proxy(function() {

        $(this).addClass('aNewClass');  

    }, this), 1000);
});

jquery的事件绑定和解绑的原理

js数组和php数组的关系

一:数组
a、js定义数组:

var arr = new Array(); //定义空数组 
var arr = new Array(2); //仅指定长度,而且指定的长度没多大意义 
var arr = new Array(1,2,3); //定义数组并赋初值1,2,3 
var arr = [1,2,3]; //同上,不过比上面的速度快 

*:js数组只能通过'[]'访问属性。

b、php定义数组:

$arr = array(); //定义空数组 
$arr = array(1); //与js不同,这里是给键值0的值 
$arr = array(1,2,3); //定义数组并赋值1,2,3 
$arr = [1,2,3]; //同上,速度不知与js是否有异曲同工之妙?另高版本的php才支持这种写法 

*:php能通过'[]'和'{}'访问。

** 参考地址** http://blog.csdn.net/stpeace/article/details/50734548

对象和数组的关系

1、数组表示有序数据的集合,而对象表示无序数据的集合。
2、数组的数据没有”名称”(name),对象的数据有”名称”(name);
3、数组是对象的子类,就是说对象的一些特性数组都会继承,只不过数组扩展了很多自己独有的属性和方法。

画js盒模型 css3盒模型

了解跨域么?你知道哪几种跨域? jsonp为什么只能是get请求。 cors 怎么实现等。服务器设置的头 支持正则么

了解跨域么?

域名A中的JS代码AJAX请求域名为B的服务器数据,这就是跨域AJAX请求,默认情况下是不行的。
但是HTML中有地方可以跨域请求,比如img script标签,它们的src属性指向的地址可以是不在域名A下的(即跨域)。

你知道哪几种跨域?

1、 图像ping
图像ping是与服务器进行简单,单项的跨域通信的一种方式

var img=new Image();
img.onload=img.onerror=function(){
alert("done")
}
img.src="http://www.example.com/test?name=sl";

2、jsonp(最实用) jsonp是通过动态<script>元素来使用的

function callbackFunction(){
alert("回滚");
}
var script=document.createElement("script");
script.src="http://frergeoip.net.json/?callback=callbackFunction";
document.body.insertBefore(script,document.body.firstChild);

3、使用jquery实现跨域(最简单的)

<script> $.getJSON("http://example.com/data.php?callback=?",function(jsondata){ //回调事件 }); </script>

4、通过修改document.domain来跨子域

<iframe src="http://example.com/b.html" id="iframe" onload="test()"></iframe>
<script>

document.domain="example.com"; //设置成他们的父域
function test(){
document.getElementById("iframe").contentWindow;
}
</script>

5、使用window.name来进行跨域

6、CORS

cors 怎么实现?
jsonp为什么只能是get请求

跨域请求时会自动发送凭证信息么?

如何传递cookie或token等验证信息?

web前端怎么用代码实现缓存优化?

针对浏览器设置过期时间,在这个时间内的请求都会先请求本地缓存的文件和数据。另外jquery的ajax请求方式可以设置是否缓存(cache:true),可以充分利用该选项。

后台如何实现缓存?

缓存的代码上线后如何里面让其生效?

构建工具会帮助给js等文件加md5值

写个布局, 左面导航的高度和右侧内容的高度保持一致,如何做?

讲讲各种状态码。 304需要服务器端么? Etag和那个匹配等?

讲讲各种状态码。

1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。
2xx(成功)表示成功处理了请求的状态码。200(成功):服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
3xx(重定向)要完成请求,需要进一步操作。
301(永久移动):请求的网页已永久移动到新位置。
302(临时移动):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。
304(未修改):自从上次请求后,请求的网页未修改过。
4xx(请求错误)这些状态码表示请求可能出错,妨碍了服务器的处理。
400(错误请求):服务器不理解请求的语法。404(未找到):服务器找不到请求的网页。
5xx(服务器错误)这些状态码表示服务器在处理请求时发生内部错误。
500(服务器内部错误):服务器遇到错误,无法完成请求。
503(服务不可用):服务器目前无法使用(由于超载或停机维护)

304需要服务器端么?

304是HTTP状态码,服务器用来标识这个文件没修改,不返回内容,浏览器在接收到个状态码后,会使用浏览器已缓存的文件;

Etag和那个匹配等?

Etag 和 If-None-Match 对应 Last-Modified 和 If-Modified-Since 对应

上一篇 下一篇

猜你喜欢

热点阅读