js性能优化之 Object/Array直接量

以前可能自己写的时候也有这个习惯,但是理论性的没有认真去中总结过。

 

简单记录,加深理解。

 

我们一定有场景去会创建对象或者数组,也有各种方法去实现。

但是最快最好的是什么? -----------使用直接量或者有的说的对象和数组字面量

 

 

1. 对象字面量

 

   -------创建新对象值的表示法。一个对象字面量就是包围在一对花括号中零或者多个“名/值”对。

 

var person ={
     name:"zhangyaochun",
     age: 24,
     job:webdesigner
};

 

2. 数组字面量

 

  -------创建新数组的表示法。一个数组字面量是在一对方括号中包围零个或多个用逗号分隔的值的表达式。

 

var type=[
     'string','number','function','object','array'
];

 

当然很多开始学习js的同学会想,我不是也能这样去做吗?

 

var people = {};
people.name = "zhangyaochun";
people.age = 24;
people.job = "webdesigner";


var type = [];
type[0]="string";
type[1]="number";
type[2]="function";
type[3]="object";
type[4]="array";

 功能上多能满足或者简单地去讲执行效果是一样的,但是效率上有很多的差别??

 

好处: 直接量有利于节省代码量,运行速度上在大数据量(对象属性多,数组元素多)上有差异(特例是ff上3.5好像两个差不多)

谈谈JavaScript中的数组、集合及效率 数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素,那么除了数组我们在JavaScript里还可以有别的集合吗?       由于JavaScript的语言特性,我们可以向通用对象动态添加和删除属性。所以Object也可以看成是JS的一种特殊的集合。下面比较一下Array和Obje... 阅读详情

相关推荐

javascript——对象字面量、函数、枚举

对象字面量 使用对象字面量,可以在构建对象时,直接指定对象的属性; 语法:{属性名:属性值;属性名:属性值;…} 属性名与属性值是以键值对的方式存在的;属性名与属性值之间用:连接,属性之间用逗号隔开 var obj = { name: "张三", age: 28, //最后一个属性后面没有属性了,就不用加逗号了,不然报错很难找 sex: "男" }; console.log(obj); 对象字面量的属性名可以加引号也可以不加,

h_jQuery的博客 506

js数组对象性能比较

js数组可以看成特殊的对象,获取指定项的行为跟获取对象中指定key对应项的行为是一致的。 一般都是hash map实现的,因而复杂度是常数级的。 转载于:https://www.cnblogs.com/zhongzihao/p/5971403.html...

weixin_30627381的博客 727

【学习笔记】Part1·JavaScript·深度剖析-ES 新特性与 TypeScript、JS 性能优化(三、JavaScript 性能优化1)

课程概述

1328

JavaScript学习笔记--变与数据类型(三)----引用数据类型ObjectArray详细介绍

JavaScript学习笔记--变与数据类型(三)----引用数据类型ObjectArray详细介绍。详细介绍了Object类型和Array类型,介绍Array类型相关的方法以及在实例中使用他们。参考JavaScript高级程序设计第四版

weixin_45730885的博客 1112

《高性能JavaScript》第八章 编程实践

8.1 避免双重求值 JavaScript像其他很多脚本语言一样,允许你在程序中提取一个包含代码的字符串,然后动态执行它。有四个标准方法可以实现:eval()、Function()、setTimeout()和setInterval()。 -------------------------------------------------------------------- 注:如果你对python...

weixin_42625143的博客 188

编程实践之性能优化

文章目录一、避免双重求值使用Object/Array 直接避免重复工作延迟加载条件预加载使用速度快的部分 一、避免双重求值 双重求值:在js代码中执行另一段js代码时,会导致双重求值的性能消耗。在js代码中执行一个包含js代码的字符串的方法有。 eval()函数 Function()构造函数 setTimeout() setInterval() var num1 = 5, num2 = 6...

wobushixiaobailian的博客 188

高性能JavaScript笔记三(编程实践)

避免双重求值 有四个标准函数可以允许你传入代码的字符串,然后它才你动态执行。它们分别是:eval、Function、setTimeout、setInterval 事实上当你在javascript代码中执行另外一段javascript代码时,都会导致双重求值的性能消耗,所以在大多数情况下,没必要使得eval和Function函数,因此最好避免使用它们。至于setTimeout和setI...

weixin_30883777的博客 113

高性能JavaScript 编程实践

前言   最近在翻《高性能JavaScript》这本书(2010年版 丁琛译),感觉可能是因为浏览器引擎的改进或是其他原因,书中有些原本能提高性能的代码在最新的浏览器中已经失效。但是有些章节的有些内容还是相当不错的,譬如第八章编程实践,为了方便以后的查阅,对此做个总结。失效的代码也会在以后做更进一步的探索。 避免双重求值   这个优化策略很好理解,我们可能都已经不知不觉地运用在了实际的编程中...

weixin_34138056的博客 74

为什么Array是可迭代的,而Object是不可迭代的?

本文探讨了JavaScript中Array可迭代而Object不可迭代的原因。Array因其有序索引特性,通过实现Symbol.iterator支持高效迭代;而Object由于键值对的无序性和动态性,默认不实现迭代器。文章分析了语言设计、性能优化和历史背景等因素,并提供了使Object可迭代的两种方法:自定义Symbol.iterator或使用Object.entries/values转换为数组迭代。理解这种差异有助于开发者合理选择数据结构,编写更高效的代码。

你若盛开,清风自来 2237

Sugar.js性能优化与最佳实践:让你的JavaScript应用运行更快

Sugar.js是一个强大的JavaScript工具库,专门用于处理原生对象。通过采用最佳实践和性能优化技巧,你可以显著提升应用运行速度,让代码更加高效流畅。🚀 ## 为什么需要关注Sugar.js性能? Sugar.js在最新版本中进行了大性能优化,根据官方数据,某些方法的速度提升达到了惊人的21400%!这意味着在相同硬件条件下,你的应用可以处理更多数据,响应更迅速。 ### 核心性

gitblog_00548的博客 441

JavaScript Array(数组)对象

JavaScript数组是一种灵活的数据结构,可存储混合类型元素,支持动态长度调整。文章详细介绍了数组的创建方式(字面量、构造函数)、基本操作(访问、修改、添加/删除元素)以及常用方法(forEach、map、filter等遍历方法,push/pop等修改方法)。还对比了Python列表与JS数组的异同,指出JS数组对象类型,而Python列表是独立序列类型。文中特别强调了一些关键特性:稀疏数组支持、动态扩展能力,以及类数组对象的转换方法Array.from(),并提醒注意修改原数组与返回新数组方法的区别

likuoelie的博客 858

JS-SDSL 哈希容器应用指南:HashMap 和 HashSet 的性能优化技巧

JS-SDSL 是一个对标 C++ STL 的 JavaScript 标准数据结构库,提供了高效的 HashMap 和 HashSet 实现。本文将分享这两个哈希容器的核心特性、使用场景及性能优化技巧,帮助开发者在项目中充分发挥其优势。 ## 一、哈希容器基础:HashMap 与 HashSet 的核心价值 ### 1.1 数据结构特性概览 JS-SDSL 的哈希容器基于哈希表实现,支持平均

gitblog_00732的博客 475

ieBetter.js性能优化:让旧版IE运行现代JavaScript的最佳实践

ieBetter.js是专为IE6-IE8设计的JavaScript增强工具,它能让这些老旧浏览器支持现代JavaScript API,如同Chrome、IE9+等现代浏览器一样顺畅运行。对于仍在维护旧系统的开发者来说,ieBetter.js是提升旧版IE性能的终极解决方案。 ## 为什么需要ieBetter.js性能优化? 现代浏览器功能强大,但许多企业仍在使用IE6-IE8等老旧浏览器。直

gitblog_00146的博客 459

JavaScript性能优化的经典误区:for循环中真的需要缓存Array.length吗?

摘要:本文探讨了JavaScript中一个经典性能优化误区——for循环中缓存Array.length的必要性。通过实测数据与V8引擎原理分析,发现现代引擎已自动优化循环中的不变代码,手动缓存反而可能降性能。文章指出这一"优化"建议已过时,推荐使用原生for循环、for...of或函数式方法,并提供了正确性能测试方法。对于面试场景,强调现代引擎已自动优化length访问,手动缓存通常无益。

先做,然后做对,最后做得更好。学习就是为了自由呀,当你学会了怎么学习,想要学什么就学什么,需要什么就学什么,你就自由了。 1028

让老旧浏览器也能运行现代JavaScript的魔法工具:es5-shim完全指南

你是否曾经遇到过这样的困扰?😟 辛辛苦苦开发的JavaScript应用在IE8上完全无法运行,或者某些现代JavaScript方法在老旧浏览器中报错?别担心,今天我要介绍的就是解决这个问题的"时间穿梭机"——es5-shim!✨ **es5-shim** 是一个神奇的ECMAScript 5兼容性补丁库,它能让那些"年迈"的JavaScript引擎重新焕发青春,支持现代ES5标准的功能和方法。

gitblog_01107的博客 467

《高性能javascript》一书要点和延伸(下)

第六章 快速响应的用户界面 本章开篇介绍了浏览器UI线程的概念,我也突然想到一个小例子,这是写css3动画的朋友都经常会碰到的一个问题: <head> <meta charset="UTF-8"> <title>Title</title> <style> div{width...

dcof99817的博客 208

bytebuffer.js性能优化指南:零拷贝操作与高效内存管理的5个秘诀

在JavaScript中处理二进制数据时,性能往往是关键瓶颈。**bytebuffer.js**作为JavaScript的二进制数据处理瑞士军刀,提供了强大的零拷贝操作和高效内存管理能力。本文将分享5个实用的性能优化秘诀,帮助你充分利用bytebuffer.js的强大功能,提升应用程序的二进制数据处理效率。 ## 📊 为什么选择bytebuffer.js进行二进制数据处理? bytebuff

gitblog_01167的博客 697

AES-JS终极指南:如何在JavaScript中快速实现企业级AES加密

AES-JS是一个纯JavaScript实现的AES块密码算法库,提供所有常见加密模式支持,包括CBC、CFB、CTR、ECB和OFB。这个强大的加密工具完全用JavaScript编写,无需任何外部依赖,既可以在Node.js环境中运行,也完全兼容现代Web浏览器。无论你是前端开发者还是后端工程师,都能轻松集成这个企业级加密解决方案。 ## 🔐 为什么选择AES-JS? AES-JS是目前最

gitblog_00316的博客 1113
上一篇: array的indexOf
下一篇: 你会用string.lastIndexOf()吗?
iteye_2245
博客等级 码龄8年 21粉丝 722原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值