javascript常用知识点汇总

97 阅读1分钟

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