zoukankan      html  css  js  c++  java
  • 【优化】JSON.stringify()使用优化

      JSON.stringify 有性能的问题,移动端尤其明显。下面我们来看看如何优化。

    原始写法:

    function store(key, val) {
      localStorage.setItem(key, JSON.stringify(val));
    }
    
    store('num', 1);
    store('on', true);
    store('name', 'pamela');
    store('obj', {'hello': 'world'});

    用tyoeOf进行优化:

    function store(key, val) {
      if (typeof val === 'object') {
        localStorage.setItem(key, JSON.stringify(val));
      } else {
        localStorage.setItem(key, val);
      }
    }
    
    store('num', 1);
    store('on', true);
    store('name', 'pamela');
    store('obj', {'hello': 'world'})

    用参数进行优化:

    function store(key, val, isObject) {
      if (isObject) {
        localStorage.setItem(key, JSON.stringify(val));
      } else {
        localStorage.setItem(key, val);
      }
    }
    
    store('num', 1);
    store('on', true);
    store('name', 'pamela');
    store('obj', {'hello': 'world'}, true);

    将参数中数字变为字符串,作进一步优化:

    function store(key, val, isObject) {
      if (isObject) {
        localStorage.setItem(key, JSON.stringify(val));
      } else {
        localStorage.setItem(key, val);
      }
    }
    
    store('num', '1');
    store('on', 'true');
    store('name', 'pamela');
    store('obj', {'hello': 'world'}, true);
  • 相关阅读:
    bzoj1202 狡猾的商人
    bzoj1059 矩阵游戏
    bzoj1003 物流运输
    bzoj1601 灌水
    2017-10-25模拟赛
    洛谷—— P1051 谁拿了最多奖学金
    BZOJ——1611: [Usaco2008 Feb]Meteor Shower流星雨
    2017-10-23学大伟业Day1
    BZOJ——1610: [Usaco2008 Feb]Line连线游戏
    Vijos 包裹快递(二分)
  • 原文地址:https://www.cnblogs.com/shytong/p/5361625.html
Copyright © 2011-2022 走看看