Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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_String_Performance - Fatal编程技术网

Javascript 将常用字符串定义为变量是否会提高性能?

Javascript 将常用字符串定义为变量是否会提高性能?,javascript,string,performance,Javascript,String,Performance,在某些语言中,经常使用的字符串被定义为变量/常量,这些变量/常量被调用,而不是文字字符串。JavaScript也是这样吗?特别是,我经常使用字符串'none'。与其在代码中的任何地方编写文本'none',不如定义以下内容来提高性能: var none = 'none'; 并在代码中的所有位置使用none?或者,有没有一种方法可以插入一个文本字符串表达式,使其只计算一次?大多数Javascript编译器都会自动插入文本字符串。因此var a='hello'和var b='hello'可能已经指向

在某些语言中,经常使用的字符串被定义为变量/常量,这些变量/常量被调用,而不是文字字符串。JavaScript也是这样吗?特别是,我经常使用字符串
'none'
。与其在代码中的任何地方编写文本
'none'
,不如定义以下内容来提高性能:

var none = 'none';

并在代码中的所有位置使用
none
?或者,有没有一种方法可以插入一个文本字符串表达式,使其只计算一次?

大多数Javascript编译器都会自动插入文本字符串。因此
var a='hello'
var b='hello'
可能已经指向内存中
'hello'
字符串的同一副本,无需进一步优化

确保为相同字符串值创建不同字符串对象的唯一方法是通过字符串全局对象定义每个字符串对象,即:

var a = new String('hello');
var b = new String('hello');

将字符串存储在变量中将减少源代码本身使用的字节数。在这方面,您的代码可以执行得更快。您分析过您的代码吗?你确定这种微观优化真的会有帮助吗?如果你使用一个变量并更改字符串,你只有一个地方可以查找输入错误(假设你最初检查并验证了变量名)。至于“它是否提高了性能”-请访问并亲自检查。“在某些语言中,经常使用的字符串被定义为变量/常量,它们被称为变量/常量,而不是文字字符串”-比如在什么语言中?这听起来很奇怪也没用。这既是一种在任何实际软件项目中都毫无意义的微观优化,也是一种对于解释器来说可以自动优化的琐事。“自动在Javascript中实习”---这句话需要修改:ES标准甚至没有定义字符串插入。因此,它是一个实现的可选属性。“Javascript为同一字符串值创建不同字符串对象的唯一时间是,如果您通过字符串全局对象定义每个字符串对象”-您如何知道底层数据未被插入?你的假设是基于什么?重写后,仍然不清楚为什么你认为字符串文字不能被实习。@Pedro谢谢你的帮助。看来你是对的。@sawa“看来你是对的”——你怎么知道的?这个答案在任何地方都没有引用。软件工程是处理事实,而不是在互联网上信任某人。