localStorage的使用
const user = {
name: "小明",
age: 23,
};
//添加缓存
localStorage.setItem("user-info", JSON.stringify(user));
//读取缓存
JSON.parse(localStorage.getItem('user-info'));
//删除缓存
localStorage.removeItem("user-info");
//清空所有的缓存
localStorage.clear()
<script>
document.addEventListener('DOMContentLoaded',function(){
var oP = document.getElementById('price');
/*当存储空间中数据发生变化的时候*/
window.onstorage = function(ev){
/*获取正在变化的数据*/
console.log(ev)
var n = localStorage[ev.key]*20;
oP.innerHTML = n;
};
},false);
</script>
<script>
document.addEventListener('DOMContentLoaded',function(){
var oN = document.getElementById('num');
/*当input的数据改变的时候*/
oN.onchange = function(){
/*存一个key为num的数据*/
localStorage.num = this.value;
localStorage.price = this.value;
};
},false);
</script>
<body>
物品数量:<input type="number" name="num" id="num" min="0" max="10" step="2" value="2">
</body>
JSON与字符串的处理
JSON.parse();//用于解析JSON数据
JSON.stringify();//将对象/值转换为 JSON 字符串
集合的常规操作
//数组去重 new Set() 所有元素都是唯一的 集合。
const arrs = [1,2,2,4,4,1,5];
console.log( [...new Set(arrs)] );//[ 1, 2, 4, 5 ]
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}
// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}
// (a 相对于 b 的)差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}
数组的常规操作
forEach的操作
const arr = [0, 1, 2, 3, 4, 5, 6, 7]
arr.forEach((value, index, arr2) => {
arr2[index] += 10
})
console.log(arr);
// [10, 11, 12, 13, 14, 15, 16, 17]
reduce的操作
callback (执行数组中每个值的函数,包含四个参数)
previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
currentValue (数组中当前被处理的元素)
index (当前元素在数组中的索引)
array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数)。
const arr = [1, 2, 3, 4];
const initialValue = 0;
const sum = arr.reduce((prev, cur, index, arr) => {
console.log(prev, cur, index);
return prev + cur;
},initialValue)
console.log(sum);// 输出的结果: 10