关于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的面试题的主要内容,如果未能解决你的问题,请参考以下文章