javascript - 为什么人们在某些情况下使用变量?

标签 javascript variables memory allocation

我知道这个问题标题看起来很可怕,但事实并非如此。抱歉!

好吧,那么,创建一次性/不可更改的“变量”有什么意义呢?

假设我在 Person 对象中有一个名为“name”的属性。

const Person = {
    name: 'Luis Felipe Zaguini'
};

好吧。因此,人们这样做是非常常见的:

let personName = Person.name;
console.log(`I've written my name, and it is ${personName}.`);

就是这样。大多数情况下,该变量仅使用一次。或者,有时,它在其他语句中被引用,但你知道,它是无用的,因为有一种方法可以在不设置新变量的情况下引用它。

从技术上讲,您正在浪费 CPU 内存,为无用的东西分配内存,因为实际上您可以多次键入 Person.name ,并执行以下操作:

console.log(`I've written my name, and it is ${Person.name}.`);

此外,您还浪费时间并在代码中添加了更多行。我是不是太过分了?很多程序员都在做这种事情,但就我个人而言,这似乎不太适合我。

最佳答案

有很多原因

  1. “const”变量将防止值意外更改,例如如果你写了 closure其中包含可在直接范围之外访问的变量。

  2. Javascript 引擎尚无法执行 common subexpression elimination ,这是一种非常常见的编译器优化。使用临时变量可以提高性能,例如 this example .

  3. 有时,具有不同名称的变量可以阐明功能;请参阅Writing Really Obvious Code (ROC) 。示例:

    var activeUsername = User.name;  //It's not just a user's name, it's the active user's name!
    
  4. 有时,额外的变量可以更轻松地调试/观察变量

  5. 有时您想在赋值期间设置单独的断点

Am I overracting?

是的。

关于javascript - 为什么人们在某些情况下使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172002/

相关文章:

ios - 通过数据创建 UIImage 时崩溃

c - 读入缓冲区时内存泄漏

javascript - 按键事件监听器在 Mozilla SDK 中不起作用

javascript - 将 <audio> currentTime 转换为准确的时间显示

css - SASS + 循环相邻的选择器并添加下降的 z-indexes

java - 在 Java 中为变量分配动态名称

c++ - char * 持有整数的动态内存分配

javascript - 如何实现标签页的间隔切换功能?

javascript - 通过href获取<a></a>标签之间的值

javascript - ReactJS 中的错误 "Assignment to constant variable"