sessionStorage 存、取、删除、清空数据方法封装

 存数据:sessionStorageSet

// 存数据
export const sessionStorageSet = (name, obj) => {
  if (typeof obj === 'undefined') {
    return false
  }
 // obj为undefined或null或空字符串不能存储,布尔值可存储,但取时为字符串
 if(!obj && (typeof obj === 'undefined' || typeof obj === 'object' || typeof obj === 'string')) {
    return false
 }
  let saveStr = ''
  if (typeof obj === 'object') {
    saveStr = JSON.stringify(obj)
  } else {
    saveStr = obj
  }
  sessionStorage.setItem(name, saveStr)
  return true
}

取数据:sessionStorageGet

// 取数据
export const sessionStorageGet = (name) => {
  if (typeof name !== 'string') {
    return
  }
  var savedStr = sessionStorage.getItem(name)
  // 非法值返回,包括undefined、null、空字符串
  if (!savedStr) {
    return
  }
  var result
  if ((savedStr.indexOf('"') < 0 && savedStr.indexOf('\'') < 0) || savedStr.indexOf(':') < 0) {
    return savedStr
  }
  try {
    result = JSON.parse(savedStr)
    return result
  } catch (e) {
    return savedStr
  }
}

删除某项缓存数据:sessionStorageRemove

export const sessionStorageRemove = (name) => {
  if (typeof name !== 'string') {
    return
  }
  sessionStorage.removeItem(name)
}

清除本地所有存储数据:sessionStorageClear

export const sessionStorageClear = (name) => {
  if (name) {
    return
  }
  sessionStorage.clear()
}

 

你可能感兴趣的:(js,js)