在 node.js 中将模块作为 const 和 var 导入之间的区别

Difference between importing module as const and var in node.js

我正在为 node.js

使用 mqtt 客户端

在这个linkhttps://blog.risingstack.com/getting-started-with-nodejs-and-mqtt/上,mqtt模块是这样导入的;

const mqtt = require('mqtt')  
const client = mqtt.connect('mqtt://broker.hivemq.com')

我导入模块的方式是这样的;

var mqtt = require('mqtt')  
var client = mqtt.connect('mqtt://broker.hivemq.com')

var 和 const 这两种方式有什么区别?如果我以这种方式导入会怎样;

let mqtt = require('mqtt')  
let client = mqtt.connect('mqtt://broker.hivemq.com')

重要吗?哪种编程方式才是正确的?

我正在使用 node.js v6

无论您是否将其用于 requireconst 表示无法重新分配变量,而 let 允许重新分配。 letconst 都是块作用域,而 var 是函数作用域。通常,大多数使用兼容 ES6 的东西(节点 v6 大部分兼容 ES6)的人建议更喜欢 constlet 并且从不(或很少)使用 var。这往往会提供大多数人期望的作用域行为,特别是如果来自另一种语言。

对于您的 require 语句,我想不出您想要重新分配这些变量的情况,因此 const 应该是首选方法。