JavaScript中变量声明效率问题
1 var theString1 = "字符串1";
var theString2 = "字符串1";
var theString3 = "字符串1";
var theString = {
theString1: "字符串1",
theString2: "字符串1",
theString3: "字符串1",
} var time1 = new Date();
for(var i =0; i<100000000; i++){
var thisString = theString1 + theString2 + theString3;
}
var time2 = new Date();
console.log(" 变量(time2-time1)--->",(time2-time1)); var time3 = new Date();
for(var i =0; i<100000000; i++){
var thisString = theString.theString1 + theString.theString2 + theString.theString3;
}
var time4 = new Date();
console.log(" 变量(time4-time3)--->",(time4-time3));
//输出结果:
变量(time2-time1)---> 1387
变量(time4-time3)---> 1465
以上可以看到,如果单独定义一个变量,独自访问该变量的值时,访问速度要比定义多个变量要慢。
理由的话,应该是JavaScript中访问变量中具体值时:【theVar1】的形式要比【theVar.theVar1】要快。也就是说,【多个具有联系的常量值独自定义成多个变量】的做法的效率要比【多个具有联系的常量值定义成一个变量的多个属性】来得高。
不过,在实际项目中,【多个具有联系的常量值独自定义成多个变量】的做法的可读性要比【多个具有联系的常量值定义成一个变量的多个属性】的可读性要差上多倍。
测试于:20190801,谷歌浏览器;
JavaScript中变量声明效率问题的更多相关文章
- JavaScript中变量声明有var和没var的区别
JavaScript中变量声明有var和没var的区别 JavaScript中有var和没var的区别 Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 (functi ...
- JavaScript中变量声明以及数据类型
JavaScript变量 变量名必须以字母或下划线("_")开头 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做) 变量名称对大小写敏感(y 和 Y 是不同的变量) 变量可 ...
- JavaScript中变量和函数声明的提升
现象: 1.在JavaScript中变量和函数的声明会提升到最顶部执行. 2.函数的提升高于变量的提升. 3.函数内部如果用var声明了相同名称的外部变量,函数将不再向上寻找. 4.匿名函数不会提升. ...
- javascript中函数声明、变量声明以及变量赋值之间的关系与影响
javascript中函数声明.变量声明以及变量赋值之间的关系与影响 函数声明.变量声明以及变量赋值之间有以下几点共识: 1.所有的全局变量都是window的属性 2.函数声明被提升到范围作用域的顶端 ...
- JavaScript 中变量、作用域和内存问题的学习
这是我学习JavaScript的第二篇文章,之前做过几年的Java开发,发现JavaScript虽然也是面向对象的语言但是确实有很多不同之处.就本篇博客,主要学习总结一下最近学习到的JavaScrip ...
- JavaScript中的声明提升
JavaScript中变量或者函数的声明会被提升(赋值语句不会被提升)到当前函数主体的顶部,不管这个声明是否出现在不可到达的地方. var test = 1; function f() { if(!t ...
- javascript的变量声明、数据类型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js函数中变量声明提前
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- js中变量声明有var和没有var的区别
转js中var用与不用的区别 2015年07月13日 16:08:22 阅读数:3627 Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种 ...
随机推荐
- 微pe安装原版win10怎么装|wepe安装原版win10 1803教程
http://www.xitongcheng.com/jiaocheng/xtazjc_article_42199.html 怎么制作wepe启动盘?微pe是一款全新高效.多功能pe维护工具箱,同时支 ...
- GitHub代码下载和同步
1.下载git客户端https://git-scm.com/ssh-keygen -C "your@email.address" -t rsa 2. 把下面文件的内容复制到 htt ...
- ApkUtils
import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo ...
- 日志文件---log4j.properties
### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.a ...
- C#中的属性-Property
C#的属性一直都有用,但具体了解的不是很深,而且一些注意事项也没有太在意过,糊里糊涂的用着.这两天看了C#的书专门学习了一下属性,这才知道,原来属性也有这么多东西~ ~今天记录一下,算是对学习的一个检 ...
- 关于Bootstrap Table使用生成冻结窗格的表格
参考资料 : <JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案> <http://issues.wenzhixin.net.cn/bootst ...
- eclipse上新建Maven项目报错及解决
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of ...
- Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III)
Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III) 股票问题: 121. 买卖股票的最佳时机 122 ...
- pig-csm 7.9修改记录
PigCms\Lib\Action\System\UsersAction.class.php 存在页面广告跳转 bbs.go _pe.cn的问题 tpl\Home\weimob\public_head ...
- poj3714 Raid(分治求平面最近点对)
题目链接:https://vjudge.net/problem/POJ-3714 题意:给定两个点集,求最短距离. 思路:在平面最近点对基础上加了个条件,我么不访用f做标记,集合1的f为1,集合2的f ...