Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是低效的Javascript吗?_Javascript_Html_Local Storage - Fatal编程技术网

这是低效的Javascript吗?

这是低效的Javascript吗?,javascript,html,local-storage,Javascript,Html,Local Storage,我有一些类似的Javascript: var a=localStorage.getItem(\u键)?parse(localStorage.getItem(_key)):null 如果\u key确实存在,这是有效的还是会导致冗余调用?这种替代方案是否能显著提高性能 var k = localStorage.getItem(_key); var a = k ? JSON.parse(k) : null; 请注意,我正在处理HTML5localStorage中存储的大型对象数组 如果_key确实

我有一些类似的Javascript:

var a=localStorage.getItem(\u键)?parse(localStorage.getItem(_key)):null

如果
\u key
确实存在,这是有效的还是会导致冗余调用?这种替代方案是否能显著提高性能

var k = localStorage.getItem(_key);
var a = k ? JSON.parse(k) : null;
请注意,我正在处理HTML5
localStorage
中存储的大型对象数组

如果_key确实存在,是否会导致冗余调用

是的,很明显

这种替代方案是否能显著提高性能

它会更快,是的,但它是否“重要”,你必须测试自己。顺便说一句,如果你关心第二个变量,你也可以这样做

var a = localStorage.getItem(_key);
if (a) a = JSON.parse(a);

我不完全确定,但您不能用适当的名称来衡量JavaScript性能问题吗?我相信规范对此有一些说法。比如每秒最多20次读取和100次写入(对于1个键)。或者不是。跳谷歌舞吧!如果没有可用项,JSON.parse(k)将返回null,因此您的检查是不必要的。@zvona该代码将在旧的Android浏览器上引发非法访问异常(在我发现之前我就是这样做的)@Rudie-你是说对本机实现方法的函数调用比简单地访问javascript中的局部变量更有效吗?祝你好运。如果你愿意,可以用jsperf证明我是错的。或者甚至
a&&(a=JSON.parse(a))
。这比显式
if
快吗?=)@鲁迪:不,我希望两者都编译成相同的字节码。运算符可能会慢一点,因为它需要关心返回值。此外,if语句的可读性肯定更高。它对我来说似乎没有什么意义,但它当然更快: