您应该在全局范围内使用“ var”还是“ let”?

时间:2018-08-14 04:27:19

标签: javascript ecmascript-6

假设我有这个快速应用程序,并且想在顶部添加一个全局变量

import express from 'express';

const app = express();

// var globalScopeVariable = 123;

app.get('/', (req, res) => {
  // home page
});

app.get('/create/:message', (req, res) => {
  //  add block
});

app.get('/add/:peerPort', (req, res) => {
  // add peer
});

在这种情况下使用'var'或'let'是一个好习惯吗?

2 个答案:

答案 0 :(得分:3)

在您的情况下(Node.js),varlet都不构成全局范围变量;两者都会创建一个模块作用域变量(可在该模块内部访问,但不能在其他模块中访问)。这可能就是您想要的(在这种情况下,如今let通常是首选,var应该委托给历史记录);但事实并非如此,唯一的方法就是直接赋值:

global.globalScopeVariable = 123;

答案 1 :(得分:1)

如果可以重新分配变量,则使用let,否则使用const。您不必再为var操心了。

您始终可以围绕现代JavaScript中的变量声明考虑以下强大的主规则。

  • 尽快停止使用var
  • 尽可能使用const
  • 仅在确实需要时使用let