Est localStorage.getItem('item') mieux que localStorage.élément ou localStorage['item']?

J'ai récemment demandé une question à propos de LocalStorage. À l'aide de JSON.parse(localStorage.item) et JSON.parse(localStorage['item']) n'étaient pas en train de travailler pour revenir NULL lorsque l'élément n'a pas été encore fixé.

Cependant, JSON.parse(localStorage.getItem('item') a fait un travail. Et il s'avère, JSON.parse(localStorage.testObject || null) fonctionne également.

L'un des commentaires a dit essentiellement que localStorage.getItem() et localStorage.setItem() doivent toujours être privilégiées:

Les getter et setter fournir un uniforme, standardisé et
crossbrowser compatible façon de travailler avec le LS de l'api et doit toujours
la préférence sur les autres moyens. -Christoph

Je suis venu comme l'utilisation de l'abréviation de dot et de support de notations pour les localStorage, mais je suis curieux de connaître les autres, de " prendre sur cette. Est localStorage.getItem('item') mieux que localStorage.élément ou localStorage['item'] OU aussi longtemps qu'ils travaillent sont l'abréviation de notations d'accord?

  • Je crois que Christoph a fait de son raisonnement tout à fait clair. getItem et setItem sont le standardisé façon de faire les choses.
  • Les exemples dans le lien que vous avez fourni (en vertu de l'Introduction) utiliser la notation point. Lien: W3C Web de Stockage Introduction
  • Je vois. Peu trop endormi pour parcourir ces recommandations, mais comme ce webstorage API est relativement nouveau, je serais personnellement coller avec le correctement documentées getItem/setItem méthodes. Je vais lire les specs plus tard, à nouveau, mais la seule preuve de l'échec façon de répondre à votre question, c'est de faire tout au long de tests sur tous les principaux navigateurs.
  • Ok. Merci pour vos commentaires!
  • La spécification dit "pris en charge les noms de propriété sur un objet de Stockage sont les clés de chaque paire clé/valeur actuelle de la liste associée à l'objet." N'est-ce pas localStorage.item standardisé, trop?
  • Un peu en retard à répondre, mais après avoir vu tant de dupes de cette question et de revenir ici, je vais vous répondre que vous avez absolument raison. Cependant, je vais vous recommander à nouveau à l'aide de getItem/setItem, car ces méthodes ne sont pas incompatibles avec les propriétés de la localStorage objet. Exemple: localStorage.setItem('getItem', 'blah'); console.log(localStorage.getItem('getItem')); œuvres, alors que localStorage.getItem = 'blah'; écrasera localStorage est getItem méthode. jsfiddle.net/DrquY
  • En évitant bien les collisions de nom est le premier (et jusqu'ici la seule) raison logique que j'ai vu pour préférant l'interface fonctionnelle.
  • Je n'ai pas encore vu un argument en faveur de l'une ou l'autre approche qui m'a conquis. On ne les paires nom/valeur comme ils l'ont toujours été. L'autre nous donne les valeurs null lorsque nous utilisons des méthodes get/set. Je suppose que si je devais comparer par rapport à une autre liste de valeurs que l'on a la valeur null pour les valeurs optionnelles on pourrait faire plus de sens que les autres mais dire que l'un ou l'autre est "préféré" quand ils sont tous les deux dans la spec est stupide, de l'OMI. Les deux approches ont été mis à disposition pour une raison.
  • Veuillez prendre un coup d'oeil à ma réponse et dis-moi ce que vous en pensez.

InformationsquelleAutor Mark Rummel | 2012-09-28