天天看点

前端面试题-JS篇05

61、浏览器标准模式和怪异模式之间的区别是什么?

标准模式是指,浏览器按 W3C 标准解析执行代码; 怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一 样,所以我们称之为怪异模式。

浏览器解析时到底使用标准模式还是怪异模式,与你网页中的 DTD 声明直接相关,DTD 声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页 并显示,忽略 DTD 声明,将使网页进入怪异模式

62、HTTP 协议中,GET 和 POST 有什么区别?分别适用什么场 景?

get 传送的数据长度有限制,post 没有

get 通过 url 传递,在浏览器地址栏可见,post 是在报文中传递

适用场景:

post 一般用于表单提交

get 一般用于简单的数据查询,严格要求不是那么高的场景

63、HTTP 状态消息 200 302 304 403 404 500 分别表示什么

200:请求已成功,请求所希望的响应头或数据体将随此响应返回。

302:请求的资源临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当 继续向原有地址发送以后的请求。只有在 Cache-Control 或 Expires 中进行了指定的情况下, 这个响应才是可缓存的

304:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上 次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁 止包含消息体,因此始终以消息头后的第一个空行结尾。

403:服务器已经理解请求,但是拒绝执行它。

404:请求失败,请求所希望得到的资源未被在服务器上发现。

500:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这 个问题都会在服务器端的源代码出现错误时出现

64、HTTP 协 议 中 , header 信 息 里 面 ,怎 么 控 制 页 面 失 效 时 间 (last-modified,cache-control,Expires 分别代表什么)

Last-Modified 文档的最后改动时间。客户可以通过 If-Modified-Since 请求头提供一个日期,该请求将被视为一个条件 GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个 304(Not Modified) 状态。Last-Modified 也可用 setDateHeader 方法来设置。

Expires 应该在什么时候认为文档已经过期,从而不再缓存它?

65、HTTP 协议目前常用的有哪几个?KEEPALIVE 从哪个版本开始出现的?

http1.0

http1.1 keeplive

66、列举常用的 web 页面开发,调试以及优化工具

sublime vscode webstorm hbuilder dw

httpwatch=>ie ff:firebug

chrome:

67、解释什么是 sql 注入,xss 漏洞

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

而XSS漏洞,就是跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

68、如何判断一个 js 变量是数组类型

ES5:Array.isArray()

[] instanceof Array

Object.prototype.toString.call([]);//"[object Array]"

69、请列举 js 数组类型中的常用方法

concat() 连接两个或更多的数组,并返回结果。

join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop() 删除并返回数组的最后一个元素

push() 向数组的末尾添加一个或更多元素,并返回新的长度。

reverse() 颠倒数组中元素的顺序。

shift() 删除并返回数组的第一个元素

slice() 从某个已有的数组返回选定的元素

sort() 对数组的元素进行排序

splice() 删除元素,并向数组添加新元素。

toSource() 返回该对象的源代码。

toString() 把数组转换为字符串,并返回结果。

toLocaleString() 把数组转换为本地数组,并返回结果。

unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

valueOf() 返回数组对象的原始值

70、FF(火狐) 与 IE 中如何阻止事件冒泡,如何获取事件对象,以及如何获取触发事件的元素

阻止事件冒泡

FF event.stopPropagation

IE event.cancelBubble=true

获取事件对象

FF event

IE window.event

获取触发事件的元素

FF event.target

IE event.srcElement

71、列举常用的 js 框架以及分别适用的领域

jquery:简化了 js 的一些操作,并且提供了一些非常好用的 API

jquery ui、jquery-easyui:在 jqeury 的基础上提供了一些常用的组件 日期,下拉框,表格 这些组件

require.js、sea.js(阿里的玉帛)+》模块化开发使用的

zepto:精简版的 jquery,常用于手机 web 前端开发 提供了一些手机页面实用功能,touch

ext.js:跟 jquery 差不多,但是不开源,也没有 jquery 轻量

angular、knockoutjs、avalon(去哪儿前端总监):MV*框架,适合用于单页应用开发(SPA)

72、jQuery 框架中$.ajax()的常用参数有哪些?

type

类型:String

默认值: (“GET”)。请求方式 (“POST” 或 “GET”), 默认为 “GET”。注意:其它 HTTP 请求

方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

url

类型:String

默认值: 当前页地址。发送请求的地址。

success

类型:Function

请求成功后的回调函数。

参数:由服务器返回,并根据 dataType 参数进行处理后的数据;描述状态的字符串。

这是一个 Ajax 事件。

options

类型:Object

可选。AJAX 请求设置。所有选项都是可选的。 async

类型:Boolean

默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置 为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

beforeSend(XHR)

类型:Function

发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。 XMLHttpRequest 对象是唯一的参数。

这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。

cache

类型:Boolean

默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。

jQuery 1.2 新功能。

contentType

类型:String

默认值: “application/x-www-form-urlencoded”。发送信息至服务器时内容编码类型。

默认值适合大多数情况。如果你明确地传递了一个 content-type 给 $.ajax() 那么它必定会发 送给服务器(即使没有数据要发送)。

data

类型:String

发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将 自动为不同值对应同一个名称。如 {foo:[“bar1”, “bar2”]} 转换为 ‘&foo=bar1&foo=bar2’。

dataFilter

类型:Function

给Ajax 返回的原始数据的进行预处理的函数。提供 data 和 type 两个参数:data 是 Ajax 返回的原始数据,type 是调用 jQuery.ajax 时提供的 dataType 参数。函数返回的值将由 jQuery 进一步处理。

dataType

类型:String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判 断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对 象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调 函数。可用值:

 “xml”: 返回 XML 文档,可用 jQuery 处理。

 “html”: 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。

 “script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 “cache” 参数。 注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将 使用 DOM 的 script 标签来加载)

 “json”: 返回 JSON 数据 。

 “jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

 “text”: 返回纯文本字符串 error 类型:Function 默认值: 自动判断 (xml 或 html)。请求失败时调用此函数。 有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。 如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 “timeout”, “error”, “notmodified” 和 “parsererror”。 这是一个 Ajax 事件。

继续阅读