关于Ajax和Json的面试题

Posted Web大牛程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Ajax和Json的面试题相关的知识,希望对你有一定的参考价值。

在前端面试中,js是重中之重,下图是面试的几个点:

下面列举几个ajax和json有关的知识

1.JSON 的了解?

JSON(javascript Object Notation) 是一种轻量级的数据交换格式。

它是基于 JavaScript 的一个子集。数据格式简单, 易于读写, 占用带宽小

如: {“age”:”12″, “name”:”back”}

JSON 字符串转换为 JSON 对象:


let str = '{ "name":"runoob", "alexa":10000 }'
let obj = JSON.parse(str);


JSON 对象转换为 JSON 字符串:


let obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
let myJSON = JSON.stringify(obj);


2.Ajax 是什么? 如何创建一个 Ajax?

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

所谓异步,在这里简单地解释就是:向服务器发送请求的时候,我们不必等待结果,而是可以同时做其他的事情,等到有了结果它自己会根据设定进行后续操作,与此同时,页面是不会发生整页刷新的,ᨀ高了用户体验。

(1)创建 XMLHttpRequest 对象,也就是创建一个异步调用对象

(2)创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、 URL 及验证信息

(3)设置响应 HTTP 请求状态变化的函数

(4)发送 HTTP 请求

(5)获取异步调用返回的数据

(6)使用 JavaScript 和 DOM 实现局部刷新.


3.同步和异步的区别?

同步的概念应该是来自于 OS 中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.

同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。

异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。


4.请解释浏览器的同源策略 (same-origin policy)。

同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。

何谓同源: URL 由协议、域名、端口和路径组成,如果两个 URL 的协议、域名和端口相同,则表示他们同源。

从一个域上加载的脚本不允许访问另外一个域的文档属性。


5.ajax 请求的时候 get 和 post 方式的区别?

get请求是跟在 url 后面,post请求是放在虚拟载体里面

get请求有大小限制,post没有

get请求参数是拼接在url后面的,安全性能比较低。

应用不同 一个是论坛等只需要请求的,一个是类似修改密码的;


6.ajax 请求时, 如何解释 json 数据

使用 eval parse,鉴于安全性考虑 使用 parse 更靠谱;


7.异步加载的方式有哪些?

(1) defer,只支持 IE

(2) async:

(3) 创建 script,插入到 DOM 中,加载完毕后 callBack。


8.请尽可能详尽的解释 Ajax 的工作原理。

创建 ajax 对象(XMLHttpRequest/ActiveXObject(Microsoft.XMLHttp))

判断数据传输方式(GET/POST)

向服务器发送请求open(规定请求的类型、URL 以及是否异步处理请求。)

发送 send();

当 ajax 对象完成第四步(onreadystatechange)数据接收完成,判断 http 响应状态(status)200-300 之间或者 304(缓存)执行回调函数。


最后祝大家都能顺利的找到工作,实现自己的梦想,加油加油!

以上是关于关于Ajax和Json的面试题的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

ajax面试题大全

面试题系列--axios和ajax区别

Ajax请求的Json解析以及Post与Get方法

java笔试面试题

js面试题-----通信类