【本周任务】
JSON
一、语法
1.简单值
可以在 JSON 中表示字符串(字符串必须使用双引号)、数值、布尔值和 null。 但 JSON 不支持 JavaScript 中的特殊值 undefined。
2.对象
首先,没有声明变量(JSON 中没有变量的概念)。其次,没有末尾的分号(因为这不是 JavaScript 语句,所以不需要分号)。再说一遍,对象的属性必须加双引号,这在 JSON 中是必需的。
{
"name": "Nicholas",
"age": 29
}
3.数组
同样要注意,JSON 数组也没有变量和分号。
[25, "hi", true]
二、解析与序列化
1.JSON对象
stringify()方法:
var book = {
title: "Professional JavaScript",
authors: [
"Nicholas C. Zakas"
],
edition: 3,
year: 2011
};
var jsonText = JSON.stringify(book);
//保存在 jsonText 中的字符串:
{"title":"Professional JavaScript","authors":["Nicholas C. Zakas"],"edition":3,
"year":2011}
parse()方法:
将 JSON 字符串直接传递给 JSON.parse()就可以得到相应的 JavaScript 值。例如,使用下列代码
就可以创建与 book 类似的对象:
var bookCopy = JSON.parse(jsonText);
2.序列化选项
a.过滤结果
JSON.stringify()还可以接收另外两个参数,这两个参数用于指定以不同的方式序列化 JavaScript 对象。第一个参数是个过滤器,可以是一个数组,也可以是一个函数;第二个参数可以是数组,也可以是函数。
b.字符串缩进
JSON.stringify()方法的第三个参数用于控制结果中的缩进和空白符。
c. toJSON()方法
3.解析选项
JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将在每个键值对儿上调用。还原函数。
AJAX
负责 Ajax 运作的核心对象是 XMLHttpRequest(XHR)对象。
一、XHR
1.用法
*open(),它接受 3 个参数:要发送的请求的类型(“get”、“post"等)、请求的 URL 和表示是否异步发送请求的布尔值。
*send(),接收一个参数,即要作为请求主体发送的数据。
*abort()XHR 对象会停止触发事件,而且也不再允许访问任何与响应有关的对象属性。
2.HTTP头部信息
Accept:浏览器能够处理的内容类型。
Accept-Charset:浏览器能够显示的字符集。
Accept-Encoding:浏览器能够处理的压缩编码。
Accept-Language:浏览器当前设置的语言。
Connection:浏览器与服务器之间连接的类型。
Cookie:当前页面设置的任何 Cookie。 Host:发出请求的页面所在的域 。 Referer:发出请求的页面的 URI。
User-Agent:浏览器的用户代理字符串。
3.GET请求
GET 是最常见的请求类型,最常用于向服务器查询某些信息。必要时,可以将查询字符串参数追加
到 URL 的末尾,以便将信息发送给服务器。对 XHR 而言,位于传入 open()方法的 URL 末尾的查询字符串必须经过正确的编码才行。
4.POST请求
使用频率仅次于 GET 的是 POST 请求,通常用于向服务器发送应该被保存的数据。POST 请求应该
把数据作为请求的主体提交,而 GET 请求传统上不是这样。POST 请求的主体可以包含非常多的数据,而且格式不限。在 open()方法第一个参数的位置传入"post”,就可以初始化一个 POST 请求。