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);