JSON.stringify() 方法将一个 JavaScript 值(对象或者数组)转换为一个 JSON 字符串,如果指定了一个 replacer 函数,则可以替换值。
语法:
JSON.stringify(value, replacer, space)
参数
序列化的过程
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set 对象类似于数组,但是成员的值都是唯一的,没有重复的值。
创建Set对象:
let mySet = new Set();
添加值:
mySet.add(1);
mySet.add("some text");
let obj = {a: 1, b: 2};
mySet.add(obj);
删除值:
mySet.delete(1);
判断值是否存在:
mySet.has(1);
清空Set对象:
mySet.clear();
遍历Set对象:
for (let item of mySet) {
console.log(item);
}
Set 与 WeakSet 的区别:
Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(包括对象)都可以作为一个键或一个值。
创建Map对象:
let myMap = new Map();
添加键值对:
myMap.set('name', '张三');
myMap.set('age', 18);
myMap.set('gender', '男');
获取值:
myMap.get('name');
判断键是否存在:
myMap.has('name');
删除键值对:
myMap.delete('name');
清空Map对象:
myMap.clear();
遍历Map对象:
for (let [key, value] of myMap) {
console.log(key, value);
}
展开运算符:
展开运算符是三个点(…)。它可以将一个数组展开,然后把剩余的元素放入一个新的数组中。
rest参数:
Rest为解决传⼊的参数数量不⼀定;不会为每个变量给⼀个单独的名称,参数对象包含所有参数传递给函数;
Proxy 对象用于定义基本操作的自定义行为(如属性查找、赋值、枚举、函数调用等)。
创建Proxy对象:
let myProxy = new Proxy(target, handler);
target: 要使用 Proxy 包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理)。
handler: 一个对象,其属性是当执行一个操作时定义代理的行为的函数。
// handler:
{
get: () {
// 代理对象的属性被读取时的操作
},
set:() {
// 代理对象的谁属性被设置时的操作
},
has: () {
// 代理对象的属性被in操作符检查时的操作
},
deleteProperty: () {
// 代理对象的属性被delete操作时的操作
},
apply: () {
// 代理对象作为函数被调用时的操作(这个捕捉器只有当代理对象是函数时才会被调用)
},
construct: () {
// 代理对象作为构造函数被使用new关键字创建实例时的操作
},
getPrototypeOf: () {
// 代理对象的原型对象被读取时的操作
},
setPrototypeOf: () {
// 代理对象的原型对象被设置时的操作
},
isExtensible: () {
// 代理对象被使用Object.isExtensible检查时的操作
},
preventExtensions: () {
// 代理对象被使用Object.preventExtensions检查时的操作
},
defineProperty: () {
// 代理对象被使用Object.defineProperty检查时的操作
}
}
Ajax: 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
const ajax = XMLHttpRequest();
ajax.open("GET",url,true)
ajax.send();
ajax.onreadystatuschange = function () {
if (ajax.readystatus === 4 && ajax.status === 200) {
console.log(ajax.responseText);
}
}
ajax.onerror = function () {}
ajax.ontimeout = function () {}
Fetch: Fetch API 提供了一个全局 fetch() 方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。
fetch(url,{
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}).then(res => {
const data = res.json();
console.log(data);
})
Axios: 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
axios({
url: url,
method: 'GET',
params: {
// 请求参数
},
data: {}
// 请求体参数
headers: {}
// 请求头
}).then(res => {
console.log(res);
})