面试知识5

2017-07-11  本文已影响0人  stars甜

一:null和undefined的区别?

1:null是一个表示”无”的对象,转为数值时为0;

2:undefined是一个表示”无”的原始值,转为数值时为NaN。

3:当声明的变量还未被初始化时,变量的默认值为undefined。

4:null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义,用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

null表示”没有对象”,即该处不应该有值,用法:

(1) 作为函数的参数,表示该函数的参数不是对象。

(2) 作为对象原型链的终点。

二:new操作符具体干了什么呢?

1、创建一个对象,并且this变量引用该对象,同时还继承了该函数的原型。

2、属性和方法被加入到this引用的对象中。

3、新创建的对象由this所引用,并且最后隐式的返回this。

var obj  = {};

obj.__proto__ = Base.prototype;

Base.call(obj);

三:IE 与其他浏览器不一样的一些特性?

1:IE支持currentStyle,FIrefox使用getComputStyle

2:IE 使用innerText,Firefox使用textContent

3:滤镜方面:IE:filter:alpha(opacity= num);Firefox:-moz-opacity:num

4:事件方面:IE:attachEvent:火狐是addEventListener

5:鼠标位置:IE是event.clientX;火狐是event.pageX

6:IE使用event.srcElement;Firefox使用event.target

7:IE中消除list的原点仅需margin:0即可达到最终效果;FIrefox需要设置margin:0;padding:0以及list-style:none

8:CSS圆角:ie7以下不支持圆角

四:一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

分为4个步骤:    (1),当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。    

(2), 浏览器与远程`Web`服务器通过TCP三次握手协商来建立一个TCP/IP连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。    (3),一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。    

(4),此时,Web服务器提供资源服务,客户端开始下载资源。请求返回后,便进入了我们关注的前端模块简单来说,浏览器会解析HTML生成DOM Tree,其次会根据CSS生成CSS Rule Tree,而javascript又可以根据DOM API操作DOM

五:异步加载和延迟加载

异步加载:

1:动态插入script标签

2.通过ajax去获取js代码,然后通过eval执行

3.script标签上添加defer或者async属性

4.创建并插入iframe,让它异步执行js

延迟加载:

1:有些 js 代码并不是页面初始化的时候就立刻需要的,而稍后的某些情况才需要的。setTimeout()

六:请解释一下 JavaScript 的同源策略。

概念:

同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。其目的是防止某个文档或脚本从多个不同源装载。

这里的同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议。

指一段脚本只能读取来自同一来源的窗口和文档的属性。

七:为什么要有同源限制?

我们举例说明:比如一个黑客程序,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。

八:同源策略的缺点:

现在网站的JS都会进行压缩,一些文件用了严格模式,而另一些没有。这时这些本来是严格模式的文件,被merge后,这个串就到了文件的中间,不仅没有指示严格模式,反而在压缩后浪费了字节。

上一篇 下一篇

猜你喜欢

热点阅读