当前位置: 首页 > 知识库问答 >
问题:

javascript - localstorage.aaa和localstorage.setitem('aaa')两种赋值方式有什么区别?

严朝明
2023-04-27
localStorage.aaa = 'aaa'
localStorage.setItem('bbb', 'bbb')

两种写法有什么区别吗?哪种兼容性好

共有3个答案

顾琛
2023-04-27

localStorage.aaa = 'aaa'localStorage.setItem('aaa', 'aaa') 是一样的。

只不过考虑可读性的话,最好通过 getset 的方式走 �� #在存储中设置值 - 使用 Web Storage API - Web API 接口参考 | MDN
特别是经常会有人在业务代码中里面写错判断,比如说 if (localStorage.aaa = 'aaa') 就可能会被修改到,使用 getset 的方式就可以避免:

const flag = localStorage.getItem('aaa')
if(flag = 'ABC') {
  ...
// Uncaught TypeError: Assignment to constant variable.

// 或者通过 var 的形式声明
var flag = localStorage.getItem('aaa')
if(flag = 'ABC') {
  ....
}
conso.log(localStorage.getItem('aaa'))
// 'aaa'
吴缪文
2023-04-27

两者用于设置localStorage的键值对,区别在于语法方式不同。
image.png

  • localStorage.aaa = 'aaa' 使用的是对象属性的形式,将值直接存储在localStorage上,相当于调用了setItem('aaa', 'aaa')方法。但是无法处理异常情况,如存储失败时没有错误提示。
  • localStorage.setItem('bbb', 'bbb') 使用setItem(key, value)设置,提供了错误处理和兼容性。

两种写法在结果上没有区别,但是建议使用localStorage.setItem(key, value)的方式进行操作, 该方法兼容性更好

夏宪
2023-04-27

没区别,一样的

 类似资料:
  • 问题内容: 问题答案: 在3.0之前的Python版本中,有两种字符串:“普通字符串”和“ unicode字符串”。普通字符串()不能表示拉丁字母之外的字符(为简单起见,忽略代码页的详细信息)。Unicode字符串()可以代表任何字母的字符,包括虚构的字母,例如Klingon。 那么,为什么要使用两种字符串,仅使用Unicode会更好,因为这将涵盖所有情况?最好只使用Unicode,但是在Unic

  • 问题内容: 我想通过事件参数发生按钮单击事件时分配一些值: 我已将值分配给 。 现在我看到angular.copy()。所以我用angular.copy编写了代码。 两者都在做同样的事情,所以有什么区别?请告诉我和之间的区别。 问题答案: 可以理解,这里 执行了参数的深层复制(参见“克隆”)-本质上是创建一个新对象-而使用赋值运算符只分配 引用 的。 因此,在后一种情况下,如果您要更改某些内容,您

  • 问题内容: 我试图在Web应用程序中验证公司名称,并且使用此正则表达式模式 上述模式将拒绝值 10004 Estates Limited 但是如果我提出0-9,那么模式变成 然后就可以了。正则表达式和模式是新手,但我知道我应该使用更多它,因此我想对此进行澄清。谢谢。 问题答案: 是字符类中的一个特殊字符,因此是歧义的,可能会赋予和和含义,因此本质上是字符。 要在字符类中包含连字符减号,您必须将其转

  • 本文向大家介绍说下line-height三种赋值方式有何区别?相关面试题,主要包含被问及说下line-height三种赋值方式有何区别?时的应答技巧和注意事项,需要的朋友参考一下 line-height: 1.2 => 1.2 * font-size line-height: 1.2em => em不确定性 line-height: 120% => 120% * font-size

  • 问题内容: 与 是否有EventEmitter.call(this)所需的功能? 问题答案: 是否有EventEmitter.call(this)所需的功能? 显然,是的: 由于所有使用的方法都会检查其是否存在,因此,如果您忽略了调用,我希望不会有太大的改变,但是我不确定将来是否成立。 有迹象表明,做足够多的其他构造 不 容忍被省略,所以这是很好的做法,只是 始终 构造一个实例时调用构造函数。

  • 本文向大家介绍这两种展开运算符的方式有什么区别呢?相关面试题,主要包含被问及这两种展开运算符的方式有什么区别呢?时的应答技巧和注意事项,需要的朋友参考一下 本题在于考察展开运算符...属于浅拷贝 function Super(val) { this.value = val || 'init' } Super.prototype.getTxt = function () { console.log(